this->owns_lock()
m.try_lock()
, this->mutex() == &m
.STD::UNIQUE_LOCK
Конструирует экземпляр std::unique_lock
template
unique_lock(
mutex_type& m,
std::chrono::duration
Тип Mutex
std::unique_lock
, должен удовлетворять требованиям концепции TimedLockable
.Конструирует экземпляр std::unique_lock
m.try_lock_for(relative_time)
.Нет.
this->owns_lock()
m.try_lock_for()
, this->mutex() == &m
.STD::UNIQUE_LOCK
Конструирует экземпляр std::unique_lock
template
unique_lock(
mutex_type& m,
std::chrono::time_point
Тип Mutex
std::unique_lock
, должен удовлетворять требованиям концепции TimedLockable
.Конструирует экземпляр std::unique_lock
m.try_lock_until(relative_time)
.Нет.
this->owns_lock()
m.try_lock_until()
, this->mutex() == &m
.STD::UNIQUE_LOCK
Передает владение блокировкой от существующего объекта std::unique_lock
unique_lock(unique_lock&& other) noexcept;
Конструирует экземпляр std::unique_lock
other
владел блокировкой мьютекса до вызова конструктора, то теперь этой блокировкой владеет вновь сконструированный объект std::unique_lock
.Для вновь сконструированного объекта std::unique_lock x
x.mutex()
равно значению other.mutex()
до вызова конструктора, а x.owns_lock()
равно значению other.owns_lock()
до вызова конструктора. other.mutex() == NULL
, other.owns_lock() == false
.Нет.
Примечание
. Объектыstd::unique_lock
не удовлетворяют требованиям концепции CopyConstructible
, поэтому копирующего конструктора не существует, существует только этот перемещающий конструктор.STD::UNIQUE_LOCK
Передает владение блокировкой от одного объекта std: :unique_ lock
unique_lock& operator=(unique_lock&& other) noexcept;
Если this->owns_lock()
true
до вызова этого оператора, то вызывает this->unlock()
. Если объект other
владел блокировкой мьютекса до присваивания, то теперь этой блокировкой владеет *this
.this.mutex()
other.mutex()
до присваивания, а this.owns_lock()
равно значению other.owns_lock()
до присваивания. other.mutex() == NULL
, other.owns_lock() == false
.Нет.
Примечание
. Объектыstd::unique_lock
не удовлетворяют требованиям концепции CopyAssignable
, поэтому копирующего оператора присваивания не существует, существует только этот перемещающий оператор присваивания.STD::UNIQUE_LOCK
Уничтожает экземпляр std::unique_lock
~unique_lock();