diff options
author | Pascal Bellard | 2010-07-04 00:57:03 +0200 |
---|---|---|
committer | Denys Vlasenko | 2010-07-04 00:57:03 +0200 |
commit | 21e8e8da6483c80a6054b06e48341968a7dccdd5 (patch) | |
tree | 9980dc076107930f9706733c7cbedcf0e4099877 /libbb/vfork_daemon_rexec.c | |
parent | 7c1b2b5420d4208864b8bc6e07e90792aed94981 (diff) | |
download | busybox-21e8e8da6483c80a6054b06e48341968a7dccdd5.zip busybox-21e8e8da6483c80a6054b06e48341968a7dccdd5.tar.gz |
libbb: introduce and use BB_EXECVP_or_die()
function old new delta
BB_EXECVP_or_die - 47 +47
time_main 1042 1043 +1
chrt_main 371 364 -7
ionice_main 292 282 -10
setsid_main 69 56 -13
nohup_main 236 223 -13
cttyhack_main 266 253 -13
chroot_main 94 81 -13
chpst_main 746 733 -13
timeout_main 297 279 -18
taskset_main 541 522 -19
vfork_child 67 45 -22
parse 975 953 -22
lpd_main 770 748 -22
launch_helper 192 170 -22
tcpudpsvd_main 1810 1782 -28
nice_main 190 156 -34
env_main 242 206 -36
run_command 221 174 -47
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/17 up/down: 48/-352) Total: -304 bytes
Signed-off-by: Pascal Bellard <pascal.bellard@ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/vfork_daemon_rexec.c')
-rw-r--r-- | libbb/vfork_daemon_rexec.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index 082f0f6..8102ea2 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -67,40 +67,6 @@ pid_t FAST_FUNC xspawn(char **argv) return pid; } -pid_t FAST_FUNC safe_waitpid(pid_t pid, int *wstat, int options) -{ - pid_t r; - - do - r = waitpid(pid, wstat, options); - while ((r == -1) && (errno == EINTR)); - return r; -} - -pid_t FAST_FUNC wait_any_nohang(int *wstat) -{ - return safe_waitpid(-1, wstat, WNOHANG); -} - -// Wait for the specified child PID to exit, returning child's error return. -int FAST_FUNC wait4pid(pid_t pid) -{ - int status; - - if (pid <= 0) { - /*errno = ECHILD; -- wrong. */ - /* we expect errno to be already set from failed [v]fork/exec */ - return -1; - } - if (safe_waitpid(pid, &status, 0) == -1) - return -1; - if (WIFEXITED(status)) - return WEXITSTATUS(status); - if (WIFSIGNALED(status)) - return WTERMSIG(status) + 0x180; - return 0; -} - #if ENABLE_FEATURE_PREFER_APPLETS void FAST_FUNC save_nofork_data(struct nofork_save_area *save) { |