template<typename Lockable,typename Clock, typename Duration> std::cv_status wait_until( Lockable& lock, std::chrono::time_point<Clock,Duration> const& absolute_time);
owns a lock.
Atomically unlock the supplied
object and block until the the thread is woken by a call to
by another thread, or
Clock::now() returns a time equal to or later
or the thread is woken spuriously. The
object is locked again before the call to
The spurious wake ups mean that a thread calling
may wake even though no thread has called
It is therefore recommended that the overload
that takes a predicate is used in preference where possible.
Otherwise, it is recommended that
be called in a loop which tests the predicate associated with the
condition variable. There is no guarantee as to how long the calling
thread will be blocked for, only that if the function returns
returned a time equal to or later than
at the point at which the thread became unblocked.
on a single
instance are serialized. A call to
will only wake threads that started waiting prior
to that call.