Compartir a través de


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