Espacios de nombres
Variantes
Acciones

std::unique_lock::try_lock_for

De cppreference.com
< cpp‎ | thread‎ | unique lock
 
 
Biblioteca de apoyo de concurrencia
Hilos
(C++11)
(C++20)
Espacio de nombres this_thread
(C++11)
(C++11)
(C++11)
Cancelación cooperativa
Exclusión mutua
(C++11)
Gestión genérica de bloqueo
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Variables de condición
(C++11)
Semáforos
Pestillos y barreras
(C++20)
(C++20)
Futuros
(C++11)
(C++11)
(C++11)
(C++11)
Recuperación segura
(C++26)
Punteros de riesgo
Tipos atómicos
(C++11)
(C++20)
Inicialización de tipos atómicos
(C++11)(en desuso en C++20)
(C++11)(en desuso en C++20)
Orden de memoria
Funciones independientes para operaciones atómicas
Funciones independientes para indicadores atómicos
 
 
template< class Rep, class Period >
bool try_lock_for( const std::chrono::duration<Rep,Period>& timeout_duration );
(desde C++11)

Intenta bloquear el mutex asociado (es decir, tomar posesión). Se bloquea hasta que la duración del tiempo de espera timeout_duration haya transcurrido o el cerrojo se adquiera, lo que suceda primero. Devuelve true si la adquisición del cerrojo tuvo éxito, de lo contrario devuelve false.

Efectivamente llama a mutex()->try_lock_for(timeout_duration).

Esta función puede bloquearse por un período más largo que timeout_duration debido a retrasos en la programación o la contención de recursos.

El estándar recomienda que se utilice un reloj estable para medir la duración. Si una implementación utiliza un reloj del sistema en su lugar, el tiempo de espera también puede ser sensible a los ajustes del reloj.

Se lanza std::system_error si no hay un mutex asociado o si el mutex ya está bloqueado por este std::unique_lock.

Contenido

[editar] Parámetros

timeout_duration - Duración máxima a bloquearse.

[editar] Valor de retorno

true si se tuvo éxito al tomar posesión del mutex; de lo contrario, false.

[editar] Excepciones

  • Cualquier excepción lanzada por mutex()->try_lock_for(timeout_duration).

[editar] Ejemplo

[editar] Véase también

Bloquea el mutex asociado (es decir, toma posesión).
(función miembro pública) [editar]
Intenta bloquear el mutex asociado (es decir, tomar posesión) sin bloquearse.
(función miembro pública) [editar]
Intenta bloquear el mutex asociado por la duración especificada
(función miembro pública de std::shared_lock<Mutex>) [editar]
Intenta bloquear el mutex TimedLockable asociado; es decir, de tomar posesión. Regresa si el mutex no ha estado disponible hasta que se alcance un punto de tiempo especificado.
(función miembro pública) [editar]
Desbloquea el mutex asociado; es decir, libera su posesión.
(función miembro pública) [editar]