svn commit: r183929 - head/sys/kern
David Xu
davidxu at FreeBSD.org
Thu Oct 16 04:17:18 UTC 2008
Author: davidxu
Date: Thu Oct 16 04:17:17 2008
New Revision: 183929
URL: http://svn.freebsd.org/changeset/base/183929
Log:
Restore code wrongly removed in SVN revision 173004, it causes threaded
process to be stuck in execv().
Noticed by: delphij
Modified:
head/sys/kern/kern_thread.c
Modified: head/sys/kern/kern_thread.c
==============================================================================
--- head/sys/kern/kern_thread.c Thu Oct 16 01:46:01 2008 (r183928)
+++ head/sys/kern/kern_thread.c Thu Oct 16 04:17:17 2008 (r183929)
@@ -572,8 +572,16 @@ thread_single(int mode)
sleepq_abort(td2, EINTR);
break;
case SINGLE_BOUNDARY:
+ if (TD_IS_SUSPENDED(td2) &&
+ !(td2->td_flags & TDF_BOUNDARY))
+ wakeup_swapper |=
+ thread_unsuspend_one(td2);
+ if (TD_ON_SLEEPQ(td2) &&
+ (td2->td_flags & TDF_SINTR))
+ wakeup_swapper |=
+ sleepq_abort(td2, ERESTART);
break;
- default:
+ default:
if (TD_IS_SUSPENDED(td2)) {
thread_unlock(td2);
continue;
More information about the svn-src-head
mailing list