don't close end process pipe descriptor too early (fixes bug introduced by the last check in)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-07-12 19:30:43 +00:00
parent 2645b45a75
commit 0c9c440190

View File

@@ -666,12 +666,6 @@ long wxExecute(wxChar **argv,
}
else if ( pid == 0 ) // we're in child
{
#if wxUSE_GUI
// reading side can be safely closed but we should keep the write one
// opened
pipeEndProcDetect.Detach(wxPipe::Write);
#endif // wxUSE_GUI
// These lines close the open file descriptors to to avoid any
// input/output which might block the process or irritate the user. If
// one wants proper IO for the subprocess, the right thing to do is to
@@ -696,16 +690,23 @@ long wxExecute(wxChar **argv,
if ( fd != STDERR_FILENO )
close(fd);
}
}
#ifndef __VMS
if ( flags & wxEXEC_MAKE_GROUP_LEADER )
{
// Set process group to child process' pid. Then killing -pid
// of the parent will kill the process and all of its children.
setsid();
}
#endif // !__VMS
if ( flags & wxEXEC_MAKE_GROUP_LEADER )
{
// Set process group to child process' pid. Then killing -pid
// of the parent will kill the process and all of its children.
setsid();
}
#endif // !__VMS
#if wxUSE_GUI
// reading side can be safely closed but we should keep the write one
// opened
pipeEndProcDetect.Detach(wxPipe::Write);
pipeEndProcDetect.Close();
#endif // wxUSE_GUI
// redirect stdin, stdout and stderr
if ( pipeIn.IsOk() )