cvs commit: src/sys/kern subr_sleepqueue.c subr_turnstile.c
subr_witness.c src/sys/sys sleepqueue.h
John Baldwin
jhb at FreeBSD.org
Fri Feb 27 10:33:10 PST 2004
jhb 2004/02/27 10:33:09 PST
FreeBSD src repository
Modified files:
sys/kern subr_turnstile.c subr_witness.c
Added files:
sys/kern subr_sleepqueue.c
sys/sys sleepqueue.h
Log:
Add an implementation of a generic sleep queue abstraction that is used
to queue threads sleeping on a wait channel similar to how turnstiles are
used to queue threads waiting for a lock. This subsystem will be used as
the backend for sleep/wakeup and condition variables initially. Eventually
it will also be used to replace the ithread-specific iwait thread
inhibitor.
Sleep queues are also not locked by sched_lock, so this splits sched_lock
up a bit further increasing concurrency within the scheduler. Sleep queues
also natively support timeouts on sleeps and interruptible sleeps allowing
for the reduction of a lot of duplicated code between the sleep/wakeup and
condition variable implementations. For more details on the sleep queue
implementation, check the comments in sys/sleepqueue.h and
kern/subr_sleepqueue.c.
Revision Changes Path
1.1 +776 -0 src/sys/kern/subr_sleepqueue.c (new)
1.140 +0 -5 src/sys/kern/subr_turnstile.c
1.170 +1 -0 src/sys/kern/subr_witness.c
1.1 +107 -0 src/sys/sys/sleepqueue.h (new)
More information about the cvs-src
mailing list