std::shared_lock<Mutex>:: try_lock_for
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Shared locking | ||||
|
shared_lock::try_lock_for
|
||||
| Modifiers | ||||
| Observers | ||||
| Non-member functions | ||||
|
template
<
class
Rep,
class
Period
>
bool try_lock_for ( const std:: chrono :: duration < Rep,Period > & timeout_duration ) ; |
(desde C++14) | |
Intenta bloquear el mutex asociado en modo compartido. 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_shared_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.
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.
std::system_error se lanza si no hay un mutex asociado o si el mutex ya está bloqueado.
El comportamiento es indefinido si
Mutex
no cumple con los
SharedTimedLockable
requisitos.
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_shared_for ( timeout_duration ) .
- Si no hay un mutex asociado, std::system_error con un código de error de std::errc::operation_not_permitted .
- Si el mutex ya está bloqueado, std::system_error con un código de error de std::errc::resource_deadlock_would_occur .
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
|
intenta bloquear (es decir, toma posesión de) el mutex
TimedLockable
asociado, retorna si el mutex ha estado indisponible durante el tiempo especificado
(función miembro pública de
std::unique_lock<Mutex>
)
|
|
|
bloquea el mutex asociado
(función miembro pública) |
|
|
intenta bloquear el mutex asociado
(función miembro pública) |
|
|
intenta bloquear el mutex asociado, hasta un punto temporal específico
(función miembro pública) |
|
|
desbloquea el mutex asociado
(función miembro pública) |