Sdílet prostřednictvím


Metoda condition_variable::wait_until

Blokuje vlákno a nastaví maximální bod v čase, kdy je podproces odblokuje.

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
);

Parametry

  • Lck
    Objekt unique_lock<mutex>.

  • Abs_time
    Objekt chrono::time_point.

  • Pred
    Jakýkoli výraz, který vrací true nebo false.

Vrácená hodnota

Metody, které vracejí cv_status zadejte návrat cv_status::timeout Pokud ukončí čekání při Abs_time uplyne.Jinak vrácení metody cv_status::no_timeout.

Metody, které vracejí bool hodnotu Pred.

Poznámky

První metoda blokuje až condition_variable objektu je signalizováno následným tichem voláním notify_one nebo notify_all nebo dokud Abs_time.Je možné také probuzení spuriously.

Druhá metoda účinně provede následující kód.

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

Pomocí metody třetí a čtvrté ukazatel na objekt typu xtime nahradit chrono::time_point objektu.xtime Objektu určuje maximální dobu čekání na signál.

Požadavky

Záhlaví: condition_variable

Obor názvů: std

Viz také

Referenční dokumentace

Třída condition_variable

<condition_variable>