Nicolas Fleury said:
> 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?

Hmm... my mistake.  The reference was missed in the FAQ.  I'll have to
correct this, but it will take me a bit, as I'm busy with other things.

> 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.

As Alexander points out, some of the justification is similar to the
justification of events.  After a semaphore is signaled, it's the burden
of the user to ensure proper synchronization of any shared resources.  In
most cases this is difficult to do correctly at best.

-- 
William E. Kempf


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to