* 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:
parent
fece95f7f3
commit
0cdcb2345a
@ -819,10 +819,6 @@ bool
|
|||||||
child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
|
child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
|
||||||
{
|
{
|
||||||
bool res;
|
bool res;
|
||||||
if (!subproc_ready && !myself->wr_proc_pipe)
|
|
||||||
res = false;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
HANDLE w4[2];
|
HANDLE w4[2];
|
||||||
unsigned n = 0;
|
unsigned n = 0;
|
||||||
unsigned nsubproc_ready;
|
unsigned nsubproc_ready;
|
||||||
@ -846,7 +842,7 @@ child_info::sync (pid_t pid, HANDLE& hProcess, DWORD howlong)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (type == _PROC_EXEC && x == nsubproc_ready)
|
if (type == _PROC_EXEC && x == nsubproc_ready && myself->wr_proc_pipe)
|
||||||
{
|
{
|
||||||
ForceCloseHandle1 (hProcess, childhProcess);
|
ForceCloseHandle1 (hProcess, childhProcess);
|
||||||
hProcess = NULL;
|
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);
|
sigproc_printf ("process %d synchronized, WFMO returned %d", pid, x);
|
||||||
res = true;
|
res = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -815,7 +815,7 @@ spawn_guts (const char * prog_arg, const char *const *argv,
|
|||||||
{
|
{
|
||||||
case _P_OVERLAY:
|
case _P_OVERLAY:
|
||||||
myself.hProcess = pi.hProcess;
|
myself.hProcess = pi.hProcess;
|
||||||
if (!synced && !myself->wr_proc_pipe)
|
if (synced && !myself->wr_proc_pipe)
|
||||||
{
|
{
|
||||||
extern bool is_toplevel_proc;
|
extern bool is_toplevel_proc;
|
||||||
is_toplevel_proc = true;
|
is_toplevel_proc = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user