Namespaces
Variants

std::unique_lock<Mutex>:: try_lock_for

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
template < class Rep, class Period >
bool try_lock_for ( const std:: chrono :: duration < Rep, Period > & timeout_duration ) ;
(desde C++11)

Intenta bloquear (es decir, tomar posesión de) el mutex asociado. Se bloquea hasta que transcurra el timeout_duration especificado o se adquiera el bloqueo, lo que ocurra primero. Al adquirir exitosamente el bloqueo retorna true , de lo contrario retorna false . Efectivamente llama a mutex ( ) - > try_lock_for ( timeout_duration ) .

Esta función puede bloquearse por más tiempo que timeout_duration debido a demoras de planificación o contención de recursos.

La norma recomienda que se utilice un reloj constante 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.

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

Contenidos

Parámetros

timeout_duration - duración máxima para bloquear

Valor de retorno

true si la propiedad del mutex ha sido adquirida exitosamente, false en caso contrario.

Excepciones

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

Ejemplo

Véase también

bloquea (es decir, toma posesión de) el mutex asociado
(función miembro pública)
intenta bloquear (es decir, tomar posesión de) el mutex asociado sin bloquear
(función miembro pública)
intenta bloquear el mutex asociado, durante la duración especificada
(función miembro pública de std::shared_lock<Mutex> )
intenta bloquear (es decir, tomar posesión de) el TimedLockable mutex asociado, retorna si el mutex ha estado no disponible hasta que se alcanza el punto de tiempo especificado
(función miembro pública)
desbloquea (es decir, libera la posesión de) el mutex asociado
(función miembro pública)