From: Julian Smart Date: Wed, 29 Aug 2001 12:20:36 +0000 (+0000) Subject: Isolated the 'error' case which I ignore X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c556f19843b149bee5591f9f26254ebe4b0a2a8e Isolated the 'error' case which I ignore git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index 9118bcb7b1..77d6e83d38 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -298,19 +298,30 @@ void wxHandleProcessTermination(wxEndProcessData *proc_data) } while ( rc == -1 && errno == EINTR ); - - if( rc == -1 || ! (WIFEXITED(status) || WIFSIGNALED(status)) ) + if (rc == -1) + { + // JACS: this could happen if the process was terminated and waitpid called, + // so commenting out for now. + //wxLogSysError(_("Waiting for subprocess termination failed (return code = -1)")); + } + else if (! (WIFEXITED(status))) { - // wxLogSysError(_("Waiting for subprocess termination failed")); + wxLogSysError(_("Waiting for subprocess termination failed (WIFEXITED returned zero)")); + + /* AFAIK, this can only happen if something went wrong within + wxGTK, i.e. due to a race condition or some serious bug. + After having fixed the order of statements in + GTK_EndProcessDetector(). (KB) + */ + } + else if (WIFSIGNALED(status)) + { + wxLogSysError(_("Waiting for subprocess termination failed (signal not caught)")); + /* AFAIK, this can only happen if something went wrong within wxGTK, i.e. due to a race condition or some serious bug. After having fixed the order of statements in GTK_EndProcessDetector(). (KB) - - JACS adds -- I have other code that kills a process recursively - and calls waitpid; so this function then generates an error. - I've commented out the wxLogSysError and the 'else' so that - termination is always done properly. */ } // else