David Howells wrote:
Alan Cox <[EMAIL PROTECTED]> 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