cvs commit: src/sys/kern kern_condvar.c kern_synch.c
subr_sleepqueue.c
Jeff Roberson
jeff at FreeBSD.org
Mon Jun 4 23:50:57 UTC 2007
jeff 2007-06-04 23:50:57 UTC
FreeBSD src repository
Modified files:
sys/kern kern_condvar.c kern_synch.c
subr_sleepqueue.c
Log:
Commit 2/14 of sched_lock decomposition.
- Adapt sleepqueues to the new thread_lock() mechanism.
- Delay assigning the sleep queue spinlock as the thread lock until after
we've checked for signals. It is illegal for a thread to return in
mi_switch() with any lock assigned to td_lock other than the scheduler
locks.
- Change sleepq_catch_signals() to do the switch if necessary to simplify
the callers.
- Simplify timeout handling now that locking a sleeping thread has the
side-effect of locking the sleepqueue. Some previous races are no
longer possible.
Tested by: kris, current@
Tested on: i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc.
Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
Revision Changes Path
1.62 +2 -2 src/sys/kern/kern_condvar.c
1.300 +7 -7 src/sys/kern/kern_synch.c
1.37 +97 -106 src/sys/kern/subr_sleepqueue.c
More information about the cvs-src
mailing list