Stefan Seefeld said:As boost doesn't, there must clearly be other reasons for them not to do that.
There is, but the explanations are long and quite complex. That's why the FAQ points you at a seminal paper on the subject, rather than attempting
Correct me if I'm wrong, but isn't the FAQ pointing to a seminal paper only when justiying the absence of events, not semaphores?
What is the paper you have in mind to justify the absence of semaphores? I would like very much to understand and be convinced. It would also be nice if the #10 of the FAQ would point to this paper.
to explain it. Like I've said in numerous arguments about the Event concept, the problem with the concept isn't that it's broken or unusable, only that it's difficult to actually use correctly. Most users think their code is correct, when in fact they have race conditions waiting to bite them. When Mutexes and Condition variables provide everything that Semaphores and Events do, but in a way that's easier to use correctly, the choice to not include Event's or Semaphore's is reasonable.
I highly respect and esteem people working on boost, and I strongly expect the removal of semaphore was reasonable. It's just that the current explanation I see is not convincing for me and probably others: "Semaphore was removed as too error prone. The same effect can be achieved with greater safety by the combination of a mutex and a condition variable." I guess the answer is in the papers referred in the events versus conditions question; it's just that people coming from Posix environments would not care about the event topic and would feel the semaphore absence justification is incomplete.
Regards, Nicolas Fleury
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost