]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Keep track of threads waiting in kse_release() to avoid a race
authordeischen <deischen@FreeBSD.org>
Wed, 28 Apr 2004 20:36:53 +0000 (20:36 +0000)
committerdeischen <deischen@FreeBSD.org>
Wed, 28 Apr 2004 20:36:53 +0000 (20:36 +0000)
commit122d328ccb51e6b9f7f19a2850a336f658546a9b
treeeb057d17b0ef06b7f741ec8ed3a383eba8487c94
parent83ecd7781ef9028a17cdb24709202983677ba2d3
Keep track of threads waiting in kse_release() to avoid a race
condition where kse_wakeup() doesn't yet see them in (interruptible)
sleep queues.  Also add an upcall check to sleepqueue_catch_signals()
suggested by jhb.

This commit should fix recent mysql hangs.

Reviewed by: jhb, davidxu
Mysql'd by: Robin P. Blanchard <robin.blanchard at gactr uga edu>
sys/kern/kern_kse.c
sys/kern/kern_thread.c
sys/kern/subr_sleepqueue.c
sys/sys/proc.h