From: Roland Schwarz (roland.schwarz_at_[hidden])
Date: 2006-10-09 14:39:47
Alexander Terekhov wrote:
> Threads A and B waiting (A does timed wait), C changes something,
> signals and enters wait expecting another state change followed by
> signaling from either A or B (whichever gets the signal and makes
> processing). If A times out and only re-signal, that signal can be
> consumed by C as spurious wake. So broadcast() is needed to wake B
> and let it do the job.
This can only happen if C is waiting on the same condition variable,
isn't it? Then I would expect it is waiting on the inverted predicate
to be meaningful (e.g. consumer/producer). So this is just a special
case of a condition sharing multiple predicates, right?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk