瀏覽代碼

HPCC-21380 Link step reports spurious failure when debugging eclcc

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 年之前
父節點
當前提交
c10257db29
共有 1 個文件被更改,包括 10 次插入4 次删除
  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
         {