Date: Mon, 4 Jun 2007 23:50:57 +0000 (UTC) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_condvar.c kern_synch.c subr_sleepqueue.c Message-ID: <200706042350.l54NovdY073814@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706042350.l54NovdY073814>