[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork()
- To: freebsd-threads_(_at_)_FreeBSD_(_dot_)_org
- Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork()
- From: David Xu <davidxu_(_at_)_freebsd_(_dot_)_org>
- Date: Mon, 13 Feb 2006 09:20:06 GMT
- Cc:
- Reply-to: David Xu <davidxu_(_at_)_freebsd_(_dot_)_org>
The following reply was made to PR threads/89262; it has been noted by GNATS.
From: David Xu <davidxu_(_at_)_freebsd_(_dot_)_org>
To: bug-followup_(_at_)_freebsd_(_dot_)_org, garry_(_at_)_NetworkPhysics_(_dot_)_COM
Cc: jhb_(_at_)_freebsd_(_dot_)_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
_______________________________________________
freebsd-threads_(_at_)_freebsd_(_dot_)_org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-threads
To unsubscribe, send any mail to "freebsd-threads-unsubscribe_(_at_)_freebsd_(_dot_)_org"
Visit your host, monkey.org