Sdílet prostřednictvím


Metoda condition_variable::wait_for

Blokuje vlákno a nastaví časový interval, po kterém odblokuje podprocesu.

template<
   class Rep,
   class Period
>
cv_status wait_for(
   unique_lock<mutex>& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time
);
template<
   class Rep,
   class Period,
   class Predicate
>
bool wait_for(
   unique_lock<mutex>& Lck,
   const chrono::duration<Rep,
   Period>& Rel_time,
   PredicatePred
);

Parametry

  • Lck
    Objekt unique_lock<mutex>.

  • Rel_time
    A chrono::duration probouzení objektu, který určuje dobu před podprocesu.

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

Vrácená hodnota

První metoda vrátí cv_status::timeout Pokud ukončí čekání při Rel_time uplynula.Jinak vrací metoda cv_status::no_timeout.

Druhá metoda vrátí 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 časový interval Rel_time uplynula.Je možné také probuzení spuriously.

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

while(!Pred())
   if(wait_for(Lck, Rel_time) == cv_status::timeout)
      return Pred();
return true;

Požadavky

Záhlaví: condition_variable

Obor názvů: std

Viz také

Referenční dokumentace

Třída condition_variable

<condition_variable>