* sigproc.cc (child_info::sync): Move check for !wr_proc_pipe lower.

* spawn.cc (spawn_guts): Correct check for top-level process.
This commit is contained in:
Christopher Faylor 2005-10-19 22:25:46 +00:00
parent fece95f7f3
commit 0cdcb2345a
2 changed files with 26 additions and 31 deletions

View File

@ -819,10 +819,6 @@ bool
child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
{
bool res;
if (!subproc_ready && !myself->wr_proc_pipe)
res = false;
else
{
HANDLE w4[2];
unsigned n = 0;
unsigned nsubproc_ready;
@ -846,7 +842,7 @@ child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
}
else
{
if (type == _PROC_EXEC && x == nsubproc_ready)
if (type == _PROC_EXEC && x == nsubproc_ready && myself->wr_proc_pipe)
{
ForceCloseHandle1 (hProcess, childhProcess);
hProcess = NULL;
@ -854,7 +850,6 @@ child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
sigproc_printf ("process %d synchronized, WFMO returned %d", pid, x);
res = true;
}
}
return res;
}

View File

@ -815,7 +815,7 @@ spawn_guts (const char * prog_arg, const char *const *argv,
{
case _P_OVERLAY:
myself.hProcess = pi.hProcess;
if (!synced && !myself->wr_proc_pipe)
if (synced && !myself->wr_proc_pipe)
{
extern bool is_toplevel_proc;
is_toplevel_proc = true;