summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2004-05-13 20:00:43 +0000
committerjhb <jhb@FreeBSD.org>2004-05-13 20:00:43 +0000
commit4e9e9bbec8240b74ff9b5c49b4ef7f9261de6f84 (patch)
tree200c16a9f916bb670ca8dbe54d5d6e5c9628da5e /usr.sbin
parent7bd09af44a6f72e55d6d90e941c2a89c3c0bd7a6 (diff)
downloadFreeBSD-src-4e9e9bbec8240b74ff9b5c49b4ef7f9261de6f84.zip
FreeBSD-src-4e9e9bbec8240b74ff9b5c49b4ef7f9261de6f84.tar.gz
Split sleepq_wakeup_thread() into two functions. sleepq_remove_thread()
removes a specific thread from a sleep queue. sleepq_resume_thread() resumes scheduling of a thread that has been previously removed from a sleep queue. - sleepq_catch_signals() just removes a thread from the queue it was just added to when a pending signal is found. - sleepq_signal() and sleepq_broadcast() remove threads from a queue, drop the queue lock, and then resume all the previously removed threads. This doesn't completely fix the sched_lock <-> sleepq chain LOR, but it makes it a little better as we no longer call setrunnble() with a sleep queue lock held meaning if setrunnable() tries to wakeup the swapper we don't try to lock two sleep queue chains at the same time.
Diffstat (limited to 'usr.sbin')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud