John Baldwin dd75b0a90d 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.
2004-02-27 18:33:09 +00:00
..
2004-02-21 21:10:55 +00:00
2004-02-21 21:32:15 +00:00
2004-02-21 23:38:58 +00:00
2004-02-24 09:59:35 +00:00
2004-02-21 21:10:55 +00:00
2004-02-26 04:27:55 +00:00
2004-02-21 21:10:55 +00:00
2004-02-21 21:10:55 +00:00
2004-02-21 21:10:55 +00:00
2004-02-21 21:10:55 +00:00