(Taken from ThreadsConsideredHarmful).
Is it that MonitorsAreBad because of AbstractionInversion or because of RaceConditions?
Mainly RaceConditions and DeadLock. Compare with EventLoopConcurrency?: http://www.erights.org/elib/concurrency/event-loop.html
The most important point on that page is:
So what's the alternative?
See MessagePassingConcurrency. (EventLoopConcurrency? is a special case of MessagePassingConcurrency.)