Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
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.