threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork()

John Baldwin jhb at
Tue Feb 14 11:10:08 PST 2006

The following reply was made to PR threads/89262; it has been noted by GNATS.

From: John Baldwin <jhb at>
To: David Xu <davidxu at>
Cc: bug-followup at, garry at
Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork()
Date: Tue, 14 Feb 2006 14:00:11 -0500

 On Monday 13 February 2006 23:51, David Xu wrote:
 > John Baldwin wrote:
 > > Only thing I would prefer is that you keep sleepq_catch_signals() but
 > > make it an internal function that sleepq_waitsig() and
 > > sleepq_timed_waitsig() call before sleepq_switch() so that
 > > sleepq_switch() doesn't get so long.  Also, it would be good.  Also, in
 > > sleepq_switch() you are using sleepq_release() and sleepq_lock() even
 > > though you already have a sleepqueue_chain pointer, and you do mtx
 > > operations on sc->sc_lock explicitly in some other places.  It would be
 > > best to consistently just do mutex ops on sc->sc_lock instead of redoing
 > > the hash-lookup several times.
 > patch updated:
 Looks pretty good to me.  I think it's actually a little cleaner now in that 
 callers of sleepq_switch() have to lock sched_lock.
 John Baldwin <jhb at>  <><
 "Power Users Use the Power to Serve"  =

More information about the freebsd-threads mailing list