diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-09 17:21:33 +0400 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-04-09 17:21:33 +0400 |
commit | 53d445aa7571c780b8f2410afb4f326e45f851e4 (patch) | |
tree | 6e07b3c0349e876a6c3aee11f6a64690307d2f0b /libbb/xfuncs.c | |
parent | 7e754f12d304704d44e10fd4d2fdb8710526656e (diff) |
wait4pid: if passed with pid < 0, do not set errno - it is already set by exec!
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r-- | libbb/xfuncs.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index c18a1d998..0cf2005ac 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -193,39 +193,6 @@ void xfflush_stdout(void) } } -// Wait for the specified child PID to exit, returning child's error return. -int wait4pid(int pid) -{ - int status; - - if (pid <= 0) { - errno = ECHILD; - return -1; - } - if (waitpid(pid, &status, 0) == -1) - return -1; - if (WIFEXITED(status)) - return WEXITSTATUS(status); - if (WIFSIGNALED(status)) - return WTERMSIG(status) + 10000; - return 0; -} - -int wait_nohang(int *wstat) -{ - return waitpid(-1, wstat, WNOHANG); -} - -int wait_pid(int *wstat, int pid) -{ - int r; - - do - r = waitpid(pid, wstat, 0); - while ((r == -1) && (errno == EINTR)); - return r; -} - void sig_block(int sig) { sigset_t ss; |