cvs commit: src/sys/kern subr_taskqueue.c
John Baldwin
jhb at freebsd.org
Wed Jan 11 05:47:14 PST 2006
On Tuesday 10 January 2006 07:37 pm, Scott Long wrote:
> scottl 2006-01-11 00:37:13 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/kern subr_taskqueue.c
> Log:
> The interlock in taskqueue_terminate() is completely wrong for taskqueues
> that use spinlocks. Remove it for now.
Eh? It's waiting for the wakeup that comes from kthread_exit() after the
thread has exited which is locked via the proc lock. Sleeping on the
taskqueue itself doesn't buy you anything. (In fact, it might sleep
forever.) The simplest solution might be to acquire the proc lock a lot
earlier before the taskqueue lock in this function so that you don't have to
acquire it while holding the taskqueue lock since that is what gives you
problems.
--
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