Kaynağa Gözat

HPCC-21380 Link step reports spurious failure when debugging eclcc

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 yıl önce
ebeveyn
işleme
c10257db29
1 değiştirilmiş dosya ile 10 ekleme ve 4 silme
  1. 10 4
      system/jlib/jmisc.cpp

+ 10 - 4
system/jlib/jmisc.cpp

@@ -590,11 +590,17 @@ bool invoke_program(const char *command_line, DWORD &runcode, bool wait, const c
         *rethandle = (HANDLE)pid;
     if (wait)
     {
-
         int retv;
-        if (waitpid(pid, &retv, 0) != pid) {
-            ERRLOG("invoke_program(%s): wait failed (%d)",command_line,(int)pid);
-            return false;
+        while (1)
+        {
+            auto wpid = waitpid(pid, &retv, 0);
+            if (wpid == pid)
+                break;
+            if (errno != EINTR)
+            {
+                ERRLOG("invoke_program(%s): wait failed (%d, %d, %d)",command_line,(int) wpid, retv, errno);
+                return false;
+            }
         }
         if (!WIFEXITED(retv)) //did not exit normally
         {