Espacios de nombres
Variantes
Acciones

std::shared_timed_mutex::try_lock_shared_for

De cppreference.com
 
 
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
Gestión genérica de bloqueo
(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)
Recuperación segura
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_shared_for(conststd::chrono::duration<Rep,Period>& timeout_duration );
(desde C++14)

Intenta bloquear el mutex en modalidad compartida. Se bloquea hasta que haya transcurrido la duración timeout_duration especificada o se haya adquirido el cerrojo compartido, lo que ocurra primero. En la adquisición exitosa del cerrojo devuelve true, de lo contrario devuelve false.

Si timeout_duration es menor o igual que timeout_duration.zero(), la función se comporta como try_lock_shared().

Esta función puede bloquearse por más de timeout_duration debido a demoras en la programación o en la contención de recursos.

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

Al igual que con try_lock_shared(), se admite que esta función pueda fallar falsamente (spuriously) y que devuelva false incluso si el mutex no fue bloqueado por ningún otro hilo en algún momento durante timeout_duration.

Una operación unlock() previa en el mismo mutex se sincroniza-con (como se define en std::memory_order) esta operación si devuelve true.

Si try_lock_shared_for se llama por un hilo que ya posee el mutex en cualquier modalidad (compartida o exclusiva), el comportamiento no está definido.

Contenido

[editar]Parámetros

timeout_duration - Duración máxima por la cual bloquearse.

[editar]Valor de retorno

true si la propiedad compartida del cerrojo se adquirió exitosamente; de lo contrario, false.

[editar]Excepciones

Cualquier excepción lanzada por el reloj, el punto de tiempo o la duración durante la ejecución (los relojes, puntos de tiempo y duraciones proporcionadas por la biblioteca estándar nunca lanzan).

[editar]Ejemplo

[editar]Véase también

Intenta bloquear el mutex para propiedad compartida; regresa si el mutex no está disponible
(función miembro pública)[editar]
Intenta bloquear el mutex para propiedad compartida; regresa si el mutex no ha estado
disponible hasta que se haya alcanzado el punto de tiempo especificado
(función miembro pública)[editar]
Intenta bloquear el mutex; regresa si el mutex no ha estado
disponible durante el tiempo de espera especificado
(función miembro pública)[editar]
close