diff options
Diffstat (limited to 'src/LYLocal.c')
-rw-r--r-- | src/LYLocal.c | 11 |
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 */ |