On Fri, 2005-12-16 at 13:41 -0800, Linus Torvalds wrote:
> 
> > > No one. It's not really a mutex, but a completion.
> > 
> > Well, then let us use a completion and not some semantically wrong
> > workaround
> 
> It is _not_ wrong to have a semaphore start out in locked state.
> 
> For example, it makes perfect sense if the data structures that the 
> semaphore needs need initialization. The way you _should_ handle that is 
> to make the semaphore come up as locked, and the data structures in some 
> "don't matter" state, and then the thing that initializes stuff can do so 
> properly and then release the semaphore.
> 
> Yes, in some cases such a locked semaphore is only used once, and ends up 
> being a "completion", but that doesn't invalidate the fact that this is 
> a perfectly fine way to handle a real issue.

Well, in case of a semaphore it is a semantically correct use case. In
case of of a mutex it is not.

Gerd was talking about a mutex. The fact that a mutex is implemented on
top (or on actually the same) mechanism as a semaphore - for what ever
reason - does not change the semantical difference between semaphores
and mutexes.

        tglx


Reply via email to