cvs commit: src/sys/kern subr_sleepqueue.c

John Baldwin jhb at FreeBSD.org
Wed Mar 3 14:40:27 PST 2004


On Wednesday 03 March 2004 03:33 pm, Dag-Erling Smørgrav wrote:
> John Baldwin <jhb at FreeBSD.org> writes:
> > Now realize that p_sigacts is a refcount'd struct shared between rfork'd
> > processes (i.e. Linux threads).  The sleep's don't actually get woken up
> > via a wakeup, they get woken up via a signal, so the wait channel is
> > really a dummy.  Try changing those three msleep's to sleep on &ps and
> > &p->p_sigacts and see if that fixes the panic.
>
> well, I still have subr_sleepqueue.c 1.1, but with the changes you
> suggest I no longer see the "Mismatches locks" message.  Patch
> attached (has style issues though).

Feel free to commit that for now.  Eventually I want to add a pair of pause() 
and catch() functions (or some better name) that wait for either a timeout or 
a signal or both instead of people passing various pointers to msleep() that 
they don't expect to get awekened (forksleep, nowake, etc.)

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the cvs-all mailing list