Date: Fri, 27 Feb 2004 10:33:09 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern subr_sleepqueue.c subr_turnstile.c subr_witness.c src/sys/sys sleepqueue.h Message-ID: <200402271833.i1RIX9WU025964@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402271833.i1RIX9WU025964>