método de condition_variable::wait_until

Bloquea un subproceso, y establezca un punto máximo a tiempo en el que desbloquea el subproceso.

template<
   class Clock,
   class Duration
>
cv_status wait_until(
   unique_lock<mutex>& Lck,
   const chrono::time_point<Clock,
   Duration>& Abs_time
);
template<
   class Clock,
   class Duration,
   class Predicate
>
bool wait_until(
   unique_lock<mutex>& Lck,
   const chrono::time_point<Clock,
   Duration>& Abs_time,
   Predicate Pred
);
cv_status wait_until(
   unique_lock<mutex>& Lck,
   const xtime *Abs_time
);
template<class Predicate>
bool wait_until(
   unique_lock<mutex>& Lck,
   const xtime *Abs_time,
   Predicate Pred
);

Parámetros

  • Lck
    Un objeto unique_lock<mutex>.

  • Abs_time
    Un objeto chrono::time_point.

  • Pred
    Cualquier expresión que devuelve true o false.

Valor devuelto

Métodos que devuelven un retorno cv_status::timeout del tipo de cv_status si espera termina cuando transcurre Abs_time .Si no, los métodos cv_status::no_timeoutreturn.

Métodos que devuelven un retorno de bool el valor de Pred.

Comentarios

Los primeros bloques de método hasta el objeto de condition_variable son devueltos por una llamada a notify_one o a notify_all o hasta Abs_time.También puede despertar false.

El segundo método ejecuta eficazmente el código siguiente.

while(!Pred())
   if(wait_until(Lck, Abs_time) == cv_status::timeout)
      return Pred();
return true;

Los proveedores y cuartos métodos utilizan un puntero a un objeto de xtime escrito para reemplazar el objeto de chrono::time_point .El objeto de xtime especifica el tiempo máximo para esperar una señal.

Requisitos

encabezado: condition_variable

espacio de nombres: std

Vea también

Referencia

clase condition_variable

<condition_variable>