std::shared_future<T>:: wait_until
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Getting the result | ||||
| State | ||||
|
shared_future::wait_until
|
|
template
<
class
Clock,
class
Duration
>
std:: future_status wait_until ( const std:: chrono :: time_point < Clock,Duration > & timeout_time ) const ; |
(desde C++11) | |
wait_until
espera a que un resultado esté disponible. Se bloquea hasta que se alcanza el
timeout_time
especificado o el resultado está disponible, lo que ocurra primero. El valor de retorno indica por qué
wait_until
regresó.
Si el futuro es el resultado de una llamada a async que utilizó evaluación diferida, esta función retorna inmediatamente sin esperar.
El comportamiento es indefinido si
valid()
es
false
antes de la llamada a esta función, o si
Clock
no cumple con los
requisitos de Clock
.
El programa está mal formado si
std::
chrono
::
is_clock_v
<
Clock
>
es
false
.
(desde C++20)
Contenidos |
Parámetros
| timeout_time | - | punto de tiempo máximo hasta el cual bloquear |
Valor de retorno
| Constante | Explicación |
| future_status::deferred | El estado compartido contiene una función diferida que utiliza evaluación perezosa, por lo que el resultado se calculará solo cuando se solicite explícitamente |
| future_status::ready | El resultado está listo |
| future_status::timeout | El tiempo de espera ha expirado |
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).
Notas
Se recomienda a las implementaciones detectar el caso cuando valid ( ) == false antes de la llamada y lanzar una std::future_error con una condición de error de future_errc::no_state .
El estándar recomienda que se utilice el reloj vinculado a
timeout_time
para medir el tiempo; no se requiere que ese reloj sea un reloj monótono. No hay garantías respecto al comportamiento de esta función si el reloj se ajusta de manera discontinua, pero las implementaciones existentes convierten
timeout_time
de
Clock
a
std::chrono::system_clock
y delegan en POSIX
pthread_cond_timedwait
para que la espera respete los ajustes del reloj del sistema, pero no los del
Clock
proporcionado por el usuario. En cualquier caso, la función también puede esperar más allá de que se haya alcanzado
timeout_time
debido a demoras de planificación o contención de recursos.
Ejemplo
|
Esta sección está incompleta
Motivo: sin ejemplo |
Véase también
|
espera a que el resultado esté disponible
(función miembro pública) |
|
|
espera el resultado, retorna si no está disponible después de la duración de tiempo de espera especificada
(función miembro pública) |