std::shared_timed_mutex:: try_lock_shared_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Exclusive locking | ||||
| Shared locking | ||||
|
shared_timed_mutex::try_lock_shared_until
|
||||
|
template
<
class
Clock,
class
Duration
>
bool try_lock_shared_until ( const std:: chrono :: time_point < Clock,Duration > & timeout_time ) ; |
(desde C++14) | |
Intenta bloquear el mutex en modo compartido. Se bloquea hasta que se alcanza el timeout_time especificado o se adquiere el bloqueo, lo que ocurra primero. Si la adquisición del bloqueo es exitosa, retorna true ; de lo contrario, retorna false .
Si timeout_time ya ha pasado, esta función se comporta como try_lock_shared() .
Clock
debe cumplir con los requisitos de
Clock
.
El programa está mal formado si
std::
chrono
::
is_clock_v
<
Clock
>
es
false
.
(desde C++20)
La norma recomienda que se utilice el reloj vinculado a timeout_time , en cuyo caso se pueden tener en cuenta los ajustes del reloj. Por lo tanto, la duración del bloqueo podría ser mayor o menor que timeout_time - Clock :: now ( ) en el momento de la llamada, dependiendo de la dirección del ajuste y de si es respetado por la implementación. La función también puede bloquear hasta después de que se haya alcanzado timeout_time debido a demoras en la planificación de procesos o contención de recursos.
Al igual que con try_lock_shared() , se permite que esta función falle espuriamente y devuelva false incluso si el mutex no estaba bloqueado por ningún otro hilo en algún momento anterior a timeout_time .
Una operación previa unlock() en el mismo mutex synchronizes-with (como se define en std::memory_order ) esta operación si retorna true .
Si
try_lock_shared_until
es llamado por un hilo que ya posee el
mutex
en cualquier modo (compartido o exclusivo), el comportamiento es indefinido.
Contenidos |
Parámetros
| timeout_time | - | punto de tiempo máximo hasta el cual bloquear |
Valor de retorno
true si la propiedad del bloqueo compartido 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
Razón: sin ejemplo |
Véase también
|
intenta bloquear el mutex, 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 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 durante la duración del tiempo de espera especificado (función miembro pública) |