about summary refs log tree commit diff stats
path: root/src/LYLocal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/LYLocal.c')
-rw-r--r--src/LYLocal.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/LYLocal.c b/src/LYLocal.c
index 2865603a..98f29ce4 100644
--- a/src/LYLocal.c
+++ b/src/LYLocal.c
@@ -2228,7 +2228,16 @@ PUBLIC int LYExecv ARGS3(
 	    while (wait(&wstatus) != pid)
 		; /* do nothing */
 #else
-	    waitpid(pid, &wstatus, 0); /* wait for child */
+	    while (-1 == waitpid (pid, &wstatus, 0)) /* wait for child */
+	    {
+#ifdef EINTR
+		if (errno == EINTR) continue;
+#endif
+#ifdef ERESTARTSYS
+		if (errno == ERESTARTSYS) continue;
+#endif
+		break;
+	    }
 #endif
 	    if (WEXITSTATUS(wstatus) != 0 ||
 		WTERMSIG(wstatus) > 0)  { /* error return */