Don't forget to turn off P_SINGLE_BOUNDARY for thread_single(SINGLE_EXIT),

otherwise a threaded process which calls execv() will hang in kernel and
may can not be killed!
This commit is contained in:
davidxu 2004-11-04 22:13:16 +00:00
parent 72e8effbe5
commit bc6688df2f

View File

@ -880,7 +880,7 @@ thread_single(int mode)
* process.
*/
p->p_singlethread = NULL;
p->p_flag &= ~(P_STOPPED_SINGLE | P_SINGLE_EXIT);
p->p_flag &= ~(P_STOPPED_SINGLE | P_SINGLE_EXIT | P_SINGLE_BOUNDARY);
thread_unthread(td);
}
mtx_unlock_spin(&sched_lock);