Re: [PATCH 1/19] MUTEX: Introduce simple mutex implementation

Christopher Friesen
2005-12-13T14:36:38Z

David Howells wrote:
> Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:

>>It seems to me it would be far far saner to define something like
>>
>> sleep_lock(&foo)
>> sleep_unlock(&foo)
>> sleep_trylock(&foo)
>
> Which would be a _lot_ more work. It would involve about ten times as many
> changes, I think, and thus be more prone to errors.

"lots of work" has never been a valid reason for not doing a kernel
change...

In this case, introducing a new API means the changes can be made over time.

As time goes on you can convert more and more code to the mutex/sleep
lock and any tricky code just stays with the older API until someone who
understands it can vet it.

As Alan mentioned, the standard counting semaphore API is up/down.
Making those refer to a sleeping mutex violates the principle of least
surprise.

Chris