<mutex>
funciones y variables
adopt_lock
Representa un objeto que se puede pasar a los constructores de lock_guard y unique_lock para indicar que el objeto de exclusión mutua que también se pasa al constructor está bloqueado.
const adopt_lock_t adopt_lock;
call_once
Proporciona un mecanismo para llamar exactamente una vez durante la ejecución a un objeto especificado que se puede llamar.
template <class Callable, class... Args>
void call_once(once_flag& Flag,
Callable F&&, Args&&... A);
Parámetros
Marcar
Un objeto once_flag que garantiza que solo se llama una vez al objeto que se puede llamar.
F
Un objeto al que se puede llamar.
A
Lista de argumentos.
Comentarios
Si Flag no es válido, la función produce un system_error que tiene un código de error de invalid_argument
. De otro modo, la función de plantilla usa su argumento Flag para garantizar que llama correctamente a F(A...)
exactamente una vez, independientemente de cuántas veces se llame a la función de plantilla. Si F(A...)
se cierra emitiendo una excepción, la llamada no se ha realizado correctamente.
defer_lock
Representa un objeto que puede pasarse al constructor para unique_lock. Esto indica que el constructor no debe bloquear el objeto mutex que también se le está pasando.
const defer_lock_t defer_lock;
lock
Intenta bloquear todos los argumentos sin interbloqueo.
template <class L1, class L2, class... L3>
void lock(L1&, L2&, L3&...);
Comentarios
Los argumentos de la función de plantilla debe ser tipos mutex, excepto que las llamadas a try_lock
pueden producir excepciones.
La función bloquea todos sus argumentos sin interbloqueo mediante llamadas a lock
, try_lock
y unlock
. Si una llamada a lock
o try_lock
produce una excepción, la función llama a unlock
en cualquiera de los objetos mutex que se han bloqueado correctamente antes de volver a producir la excepción.
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
Representa un objeto que se puede pasar al constructor de unique_lock para indicar que el constructor debería intentar desbloquear la mutex
que también se pasa a este sin bloquearla.
const try_to_lock_t try_to_lock;