std::shared_timed_mutex:: try_lock_shared_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Exclusive locking | ||||
| Shared locking | ||||
|
shared_timed_mutex::try_lock_shared_for
|
||||
|
template
<
class
Rep,
class
Period
>
bool try_lock_shared_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ; |
(desde C++14) | |
Intenta bloquear el mutex en modo compartido. Se bloquea hasta que el timeout_duration especificado haya transcurrido o se adquiera el bloqueo compartido, lo que ocurra primero. Si la adquisición del bloqueo es exitosa, retorna true , de lo contrario retorna false .
Si timeout_duration es menor o igual a timeout_duration. zero ( ) , la función se comporta como try_lock_shared() .
Esta función puede bloquearse por más tiempo que timeout_duration debido a demoras de planificación o contención de recursos.
El estándar 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.
Al igual que con try_lock_shared() , se permite que esta función falle espuriamente y retorne false incluso si el mutex no estaba bloqueado por ningún otro hilo en algún momento durante timeout_duration .
La operación unlock() previa sobre el mismo mutex sincroniza-con (como se define en std::memory_order ) esta operación si retorna true .
Si
try_lock_shared_for
es llamado por un hilo que ya posee el
mutex
en cualquier modo (compartido o exclusivo), el comportamiento es indefinido.
Contenidos |
Parámetros
| timeout_duration | - | duración máxima para bloquear |
Valor de retorno
true si el bloqueo se adquirió exitosamente, de lo contrario false .
Excepciones
Cualquier excepción lanzada por clock, time_point o duration durante la ejecución (los clocks, time points y durations proporcionados por la biblioteca estándar nunca lanzan excepciones).
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
|
intenta bloquear el mutex para propiedad compartida, retorna si el mutex no está disponible
(función miembro pública) |
|
|
intenta bloquear el mutex para propiedad compartida, retorna si el mutex ha estado
no disponible hasta que se alcanza el punto de tiempo especificado (función miembro pública) |
|
|
intenta bloquear el mutex, retorna si el mutex ha estado
no disponible durante la duración del tiempo de espera especificado (función miembro pública) |