Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.