<mutex>
функции и переменные
adopt_lock
Представляет объект, который можно передать в конструкторы для lock_guard и unique_lock, чтобы указать на блокировку объекта мьютекса, также передаваемого в конструктор.
const adopt_lock_t adopt_lock;
call_once
Предоставляет механизм для однократного вызова указанного объекта во время выполнения.
template <class Callable, class... Args>
void call_once(once_flag& Flag,
Callable F&&, Args&&... A);
Параметры
Параметр
Объект once_flag, который гарантирует, что вызываемый объект вызывается только один раз.
F
Вызываемый объект.
Объект
Список аргументов.
Замечания
Если флаг недопустим, функция создает system_error с кодом invalid_argument
ошибки. В противном случае функция шаблона использует его аргумент Flag , чтобы убедиться, что он успешно вызывается F(A...)
ровно один раз, независимо от того, сколько раз вызывается функция шаблона. Если F(A...)
завершает работу, создавая исключение, вызов считается неуспешным.
defer_lock
Представляет объект, который может быть передан в конструктор для unique_lock. Это означает, что конструктор не должен блокировать объект мьютекса, который также ему передается.
const defer_lock_t defer_lock;
lock
Пытается заблокировать все аргументы без взаимоблокировки.
template <class L1, class L2, class... L3>
void lock(L1&, L2&, L3&...);
Замечания
Аргументы функции-шаблона должны быть типа мьютекс, за исключением того, что при вызове try_lock
могут вызываться исключения.
Функция блокирует все свои аргументы без взаимоблокировки путем вызовов lock
, try_lock
, и unlock
. Если вызов lock
или try_lock
приводит к исключению, функция вызывает unlock
для любых объектов-мьютексов, которые были успешно заблокированы до повторного создания исключения.
swap
template <class Mutex>
void swap(unique_lock<Mutex>& x, unique_lock<Mutex>& y) noexcept;
try_lock
template <class L1, class L2, class... L3> int try_lock(L1&, L2&, L3&...);
try_to_lock
Представляет объект, который можно передать в конструктор для unique_lock, чтобы указать, что конструктор должен попытаться разблокировать объект mutex
, который также передается в него, без блокировки.
const try_to_lock_t try_to_lock;