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();