Boost logo

Boost :

From: Alexander Terekhov (terekhov_at_[hidden])
Date: 2001-07-03 04:09:21


> > > I have no idea what a "monitor pattern" is, for
> > example.
> >
> > Look it up :).
>
> Where? David Butenhof's book never mentions it, and Google just gives me
> a bunch of links to VDU vendors. Can you point me to a web site that
> describes it?

http://www.acm.org/classics/feb96/

"Monitors: An Operating System Structuring Concept
 C.A.R Hoare..."

note that posix CV implements a slightly different concept
(with broadcast operation) which does not preclude the
race condition with respect to "signal condition" and waiter,
so that by the time waiter gets unblocked, condition might
have already changed. that is why CV waits should be coded
inside while or do loops. the reason for "spurious wakeups"
horror stories is mostly to scare people and enforce correct
usage ;) well, it also helps implementors in some situations
e.g. with waits interrupted by signal processing; impl
might simply unconditionally generate a wakeup on return
from signal handler...

regards,
alexander.


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