|
Boost : |
From: Alexander Terekhov (terekhov_at_[hidden])
Date: 2006-10-09 14:51:48
Roland Schwarz wrote:
>
> 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
Yeah, sort of inverted.
> to be meaningful (e.g. consumer/producer). So this is just a special
> case of a condition sharing multiple predicates, right?
Right.
regards,
alexander.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk