* fork.cc (fork_parent): Reinstate "childhProc" protection. Don't close

hProcess handle here since it is used to ensure that a new process isn't
created with the old pid after the old pid exits.
* spawn.cc (spawn_guts): Ditto.
* pinfo.cc (proc_waiter): Don't send any signals if we've execed since this
process doesn't officially exist.
* pinfo.h (pinfo::pid_handle): Eliminate.  Just use hProc.
* sigproc.cc (sig_send): Don't send any signals if our sendsig doesn't exist.
That's a sign that we are execing.
(remove_proc): Eliminate pid_handle close.
This commit is contained in:
Christopher Faylor
2004-12-06 00:29:41 +00:00
parent 013f043fff
commit 8c43a9f82e
6 changed files with 25 additions and 16 deletions

View File

@@ -742,7 +742,7 @@ proc_waiter (void *arg)
/* Special case: If the "child process" that died is us, then we're
execing. Just call proc_subproc directly and then exit this loop.
We're done here. */
if (hExeced && vchild->pid == myself->pid)
if (hExeced)
{
/* execing. no signals available now. */
proc_subproc (PROC_CLEARWAIT, 0);