Date: Mon, 13 Feb 2006 09:20:06 GMT From: David Xu <davidxu@freebsd.org> To: freebsd-threads@FreeBSD.org Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() Message-ID: <200602130920.k1D9K663056466@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR threads/89262; it has been noted by GNATS. From: David Xu <davidxu@freebsd.org> To: bug-followup@freebsd.org, garry@NetworkPhysics.COM Cc: jhb@freebsd.org Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() Date: Mon, 13 Feb 2006 17:11:26 +0800 ast will call userret which in turn will call thread_suspend_check. so the bug may not be here, but in other code. I have found a race between sleep queue and thread suspension code, the following patch fixed the bug, it also simplified interaction between sleep queue and signal code. now, sleepq_abort() is also fixed, it can save an errno, unlike current code, it wrongly works as wakeup(). http://people.freebsd.org/~davidxu/patch/slpq_susp4.patch David Xu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602130920.k1D9K663056466>