std::shared_lock<Mutex>::try_lock_until
De cppreference.com
< cpp | thread | shared lock
template<class Clock, class Duration > bool try_lock_until(conststd::chrono::time_point<Clock,Duration>& timeout_time ); | (desde C++14) | |
Intenta bloquear el mutex asociado en modalidad compartida. Se bloquea hasta que se alcance el tiempo de espera timeout_time
o se adquiera el cerrojo, lo que suceda primero. Devuelve true si la adquisición del cerrojo tuvo éxito, de lo contrario devuelve false. Puede bloquearse por un período más largo hasta que se alcance el tiempo de espera timeout_time
.
Efectivamente llama a mutex()->try_lock_shared_until(timeout_time).
Se lanza std::system_error si no hay un mutex asociado o si el mutex ya está bloqueado.
Clock
debe cumplir con los requerimientos de Clock. El programa está mal formado si std::chrono::is_clock_v<Clock> es false.(desde C++20)
Contenido |
[editar]Parámetros
timeout_time | - | Punto de tiempo máximo hasta el cual bloquearse. |
[editar]Valor de retorno
true si se adquirió con éxito la propiedad del mutex; de lo contrario, false.
[editar]Excepciones
- Cualquier excepción lanzada por mutex()->try_lock_shared_for(timeout_time)
- 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
Bloquea el mutex asociado (función miembro pública) | |
Intenta bloquear el mutex asociado (función miembro pública) | |
Intenta bloquear el mutex asociado por la duración especificada (función miembro pública) | |
Desbloquea el mutex asociado (función miembro pública) | |
Intenta bloquear el mutexTimedLockable asociado; es decir, de tomar posesión. Regresa si el mutex no ha estado disponible hasta que se alcance un punto de tiempo especificado. (función miembro pública de std::unique_lock ) |