From 0c9c44019068229a5f69f6b77bffff4008c2e208 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 12 Jul 2002 19:30:43 +0000 Subject: [PATCH] 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 --- src/unix/utilsunx.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index f3c075e08d..1976a20601 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -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() ) -- 2.45.2