diff options
Diffstat (limited to 'src/libstddjb/waitpid_nointr.c')
| -rw-r--r-- | src/libstddjb/waitpid_nointr.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstddjb/waitpid_nointr.c b/src/libstddjb/waitpid_nointr.c index 838359f..aa30342 100644 --- a/src/libstddjb/waitpid_nointr.c +++ b/src/libstddjb/waitpid_nointr.c @@ -2,12 +2,15 @@ #include <sys/wait.h> #include <errno.h> + #include <skalibs/djbunix.h> pid_t waitpid_nointr (pid_t pid, int *wstat, int flags) { + int e = errno ; pid_t r ; do r = waitpid(pid, wstat, flags) ; - while ((r == (pid_t)-1) && (errno == EINTR)) ; + while (r == (pid_t)-1 && errno == EINTR) ; + if (r >= 0) errno = e ; return r ; } |
