Nicolas Fleury wrote: [...] > > It is showing that semas (e.g. bin-semas aka "auto-reset events") > > are really error-prone. Their implementation of counting semaphore > > How?
Review the code. You'll see that it has many problems. One problem is precisely the thing that POSIX rationale is talking about -- the predicate checking -- "With stateful primitives, such as binary semaphores, the wakeup in itself typically means that the wait is satisfied. The burden of ensuring correctness for such waits is thus placed on all signalers of the semaphore rather than on an explicitly coded Boolean predicate located at the condition wait." [...] > But what's the relation between Microsoft implementation of semaphore, Damn. I should have called it "metered section"... without any mentioning that it's a counting semaphore. The point is that that code does illustrate the error-proness that POSIX rationale is talking about. > pthread win32 implementation of condition http://groups.google.com/groups?selm=3CEA2764.3957A2C8%40web.de > and the error-proness of semaphores versus mutexes/conditions > in general? In general, you don't need semas for threading and you do need mutexes and condvars. "Mutexes and condition variables together constitute an appropriate, sufficient, and complete set of inter- thread synchronization primitives." > Is it simply a mather of preference and style, or is there a simple case > to show why semaphores are error-prone instead of mutexes/conditions? Again, MS-"metered section" example IS "a simple case to show why semaphores are error-prone instead of mutexes/conditions". regards, alexander. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost