* fork.cc (fork): Clear PID_REAPED.

* pinfo.cc (pinfo_init): Ditto.
(pinfo::init): Check for PID_REAPED.
* sigproc.cc (stopped_or_terminated): Ditto.
This commit is contained in:
Christopher Faylor
2011-05-05 15:03:54 +00:00
parent 1395dac1d0
commit b8424c5e9a
4 changed files with 12 additions and 5 deletions

View File

@ -1022,7 +1022,7 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child)
int terminated;
if (!((terminated = (child->process_state == PID_EXITED))
if (!((terminated = (child->process_state & (PID_REAPED | PID_EXITED)))
|| ((w->options & WCONTINUED) && child->stopsig == SIGCONT)
|| ((w->options & WUNTRACED) && child->stopsig && child->stopsig != SIGCONT)))
return false;