]> git.saurik.com Git - wxWidgets.git/commitdiff
Isolated the 'error' case which I ignore
authorJulian Smart <julian@anthemion.co.uk>
Wed, 29 Aug 2001 12:20:36 +0000 (12:20 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Wed, 29 Aug 2001 12:20:36 +0000 (12:20 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/unix/utilsunx.cpp

index 9118bcb7b1e218f0956ba2930328d382ff0f69c1..77d6e83d38cc7690f6c6d5cd331ee24cd7523c3e 100644 (file)
@@ -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