Boost logo

Boost :

Subject: Re: [boost] [thread] Timed waits in Boost.Threadpotentiallyfundamentally broken on Windows (possibly rest ofBoost too)
From: Peter Dimov (lists_at_[hidden])
Date: 2015-01-23 11:06:09


> Niall Douglas wrote:
>
> > The standard says nothing about what is or is not a spurious wakeup
> > unfortunately.
>
> What does it matter? We all know what is or is not a spurious wakeup - a
> return from the wait without the condition being notified.

Actually, I spoke too soon. This is what the standard says:

template <class Clock, class Duration>
cv_status wait_until(unique_lock<mutex>& lock,
const chrono::time_point<Clock, Duration>& abs_time);

Effects:

— The function will unblock when signaled by a call to notify_one(), a call
to notify_all(), expiration of the absolute timeout (30.2.4) specified by
abs_time, or spuriously.

Returns: cv_status::timeout if the absolute timeout (30.2.4) specified by
abs_time expired, otherwise cv_status::no_timeout.

This seems pretty clear to me.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk