no, it is not. in the kernel, you can only have
one process doing a sleep on a rendezvous point
at a time.

so when you have multiple waiter processes, you
put a qlock arround the sleep so the first process
goes into the sleep and follow up processes
will get queued on the qlock.

the problem with this construct is that only
the first process thats in the sleep can be
interrupted / killed. the processes queued
in the qlock are uninterruptable / unkillable
as long as they wait for the qlock to be
available.

the eqlock() is a interruptable version of
the qlock() call. that is, it can error out
when the process receives a note.

--
cinap

Reply via email to