diff options
Diffstat (limited to 'src/libexecline/el_forx_pidinfo.c')
| -rw-r--r-- | src/libexecline/el_forx_pidinfo.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libexecline/el_forx_pidinfo.c b/src/libexecline/el_forx_pidinfo.c index 61c5a26..8bd12bb 100644 --- a/src/libexecline/el_forx_pidinfo.c +++ b/src/libexecline/el_forx_pidinfo.c @@ -1,5 +1,7 @@ /* ISC license. */ +#include <errno.h> + #include <skalibs/djbunix.h> #include <execline/execline.h> @@ -15,11 +17,13 @@ int el_forx_isok (unsigned short const *tab, unsigned int n, unsigned short code void el_forx_sigchld_handler (int sig) { + int e = errno ; for (;;) { ssize_t r = wait_pids_nohang(el_forx_pidinfo->tab, el_forx_pidinfo->len, &el_forx_pidinfo->wstat) ; if (r <= 0) break ; el_forx_pidinfo->tab[r-1] = el_forx_pidinfo->tab[--el_forx_pidinfo->len] ; } + errno = e ; (void)sig ; } |
