|
Boost : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-03-30 06:44:42
Hello,
the docs for condition::wait say:
blocks the current thread of execution
until readied by a call to <code>this->notify_one()</code>
or<code> this->notify_all()</code>, and then reacquires the
lock.
Shouldn't the docs also mention 'spurious wakeups', that is returns from wait
without any notify_one or notify_all coll? I won't pretend to know why those
wakeups can happen and on what systems, but at least is relevant to pthreads
conditions.
I'm asking because a colleague just read this, and though that a parent thread
can launch child thread and wait for it to become ready with just
condition.wait();
on parents side and
condition.notify_one();
on child's side, while in fact return from condition.wait() only means that
the predicate waited on must be reevaluated.
- Volodya
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk