Compartir vía


recursive_mutex (Clase)

Representa un tipo de exclusión mutua. Al contrario que mutex, el comportamiento de las llamadas a métodos de bloqueo para objetos que ya están bloqueados está bien definido.

Sintaxis

class recursive_mutex;

Miembros

Constructores públicos

Nombre Descripción
recursive_mutex Construye un objeto recursive_mutex.
~recursive_mutex (Destructor) Libera todos los recursos usados por el objeto recursive_mutex.

Métodos públicos

Nombre Descripción
lock Bloquea el subproceso de llamada hasta que este obtiene la propiedad de la exclusión mutua.
try_lock Intenta obtener la propiedad de la exclusión mutua sin bloquearla.
unlock Libera la propiedad de la exclusión mutua.

Requisitos

Encabezado:<mutex>

Espacio de nombres: std

lock

Bloquea el subproceso que realiza la llamada hasta que este obtiene la propiedad mutex.

void lock();

Comentarios

Si el subproceso que realiza la llamada ya posee mutex, el método se devuelve inmediatamente, y el bloqueo anterior permanece vigente.

recursive_mutex

Crea un objeto recursive_mutex que no está bloqueado.

recursive_mutex();

~recursive_mutex

Libera todos los recursos usados por el objeto .

~recursive_mutex();

Comentarios

Si el objeto está bloqueado cuando se ejecuta el destructor, el comportamiento es indefinido.

try_lock

Intenta obtener la propiedad de mutex sin bloquearlo.

bool try_lock() noexcept;

Valor devuelto

true si el método obtiene correctamente la propiedad de mutex o si el subproceso que realiza la llamada ya posee mutex**; otherwise, **false.

Comentarios

Si el subproceso que realiza la llamada ya posee mutex, la función devuelve true inmediatamente, y el bloqueo anterior permanece vigente.

desbloquear

Libera la propiedad de la exclusión mutua.

void unlock();

Comentarios

Este método libera la propiedad de mutex solo después de que se llame tantas veces como se ha llamado a lock y try_lock correctamente en el objeto recursive_mutex.

Si el subproceso que realiza la llamada no posee mutex, el comportamiento es indefinido.

Consulte también

Referencia de archivos de encabezado
<mutex>