std::shared_lock<Mutex>::try_lock_for
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 (es decir, adquirir su propiedad) en modalidad compartida. Se bloquea hasta que la duración del tiempo de espera timeout_duration
haya transcurrido o el cerrojo se adquiera, lo que suceda primero. Devuelve true si la adquisición del cerrojo tuvo éxito, de lo contrario devuelve false.
Efectivamente llama a mutex()->try_lock_shared_for(timeout_duration).
Esta función puede bloquearse por un período más largo que timeout_duration
debido a retrasos en la programación o la contención de recursos.
El estándar recomienda que se utilice un reloj estable 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.
Se lanza std::system_error si no hay un mutex asociado o si el mutex ya está bloqueado.
Contenido |
[editar] Parámetros
timeout_duration | - | Duración máxima a bloquearse. |
[editar] Valor de retorno
true si se adquirió exitosamente la propiedad del mutex; de lo contrario, false.
[editar] 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.
[editar] Ejemplo
Esta sección está incompleta Razón: sin ejemplo |
[editar] Véase también
Intenta bloquear el mutex TimedLockable asociado; es decir, de tomar posesión. Regresa si el mutex no ha estado disponible por la duración de tiempo especificada. (función miembro pública de std::unique_lock )
| |
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 en el tiempo especificado (función miembro pública) | |
Desbloquea el mutex asociado (función miembro pública) |