From: Nicolas Fleury (nfleury_at_[hidden])
Date: 2003-06-04 17:42:34


William E. Kempf wrote:
> 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