On Sat, 17 Dec 2005, Nick Piggin wrote:

> Steven Rostedt wrote:
> > On Fri, 2005-12-16 at 23:13 +0000, David Howells wrote:
>
> >>This patch set does the following:
> >>
> >> (1) Renames DECLARE_MUTEX and DECLARE_MUTEX_LOCKED to be DECLARE_SEM_MUTEX 
> >> and
> >>     DECLARE_SEM_MUTEX_LOCKED for counting semaphores.
> >>
> >
> >
> > Could we really get rid of that "MUTEX" part.  A counting semaphore is
> > _not_ a mutex, although a mutex _is_ a counting semaphore.  As is a Jack
> > Russell is a dog, but a dog is not a Jack Russell.
> >
>
> Really?
>
> A Jack Russell is a dog because anything you say about a dog can
> also be said about a Jack Russell.

I said a Jack Russell _is_ a dog, but a dog is not a Jack Russell.
Everything you can say about a dog you can't say about a Jack Russell.
Since, a dog can have other characteristics than a Jack Russell has. A dog
can be big and lazy, but I would not say that about a Jack Russell.

>
> A counting semaphore is a mutex for the same reason (and observe
> that 99% of users use the semaphore as a mutex). A mutex definitely
> is not a counting semaphore. David's implementation of mutexes
> don't count at all.

But a counting semaphore of (one) _is_ a mutex!  But a mutex can't have
more than one.   As for David's code, that's just arguing implementation,
and not the semantics of it.

-- Steve

Reply via email to