summaryrefslogtreecommitdiff
path: root/libbb/vfork_daemon_rexec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/vfork_daemon_rexec.c')
-rw-r--r--libbb/vfork_daemon_rexec.c34
1 files changed, 0 insertions, 34 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index 082f0f63e..8102ea2dc 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -67,40 +67,6 @@ pid_t FAST_FUNC xspawn(char **argv)
67 return pid; 67 return pid;
68} 68}
69 69
70pid_t FAST_FUNC safe_waitpid(pid_t pid, int *wstat, int options)
71{
72 pid_t r;
73
74 do
75 r = waitpid(pid, wstat, options);
76 while ((r == -1) && (errno == EINTR));
77 return r;
78}
79
80pid_t FAST_FUNC wait_any_nohang(int *wstat)
81{
82 return safe_waitpid(-1, wstat, WNOHANG);
83}
84
85// Wait for the specified child PID to exit, returning child's error return.
86int FAST_FUNC wait4pid(pid_t pid)
87{
88 int status;
89
90 if (pid <= 0) {
91 /*errno = ECHILD; -- wrong. */
92 /* we expect errno to be already set from failed [v]fork/exec */
93 return -1;
94 }
95 if (safe_waitpid(pid, &status, 0) == -1)
96 return -1;
97 if (WIFEXITED(status))
98 return WEXITSTATUS(status);
99 if (WIFSIGNALED(status))
100 return WTERMSIG(status) + 0x180;
101 return 0;
102}
103
104#if ENABLE_FEATURE_PREFER_APPLETS 70#if ENABLE_FEATURE_PREFER_APPLETS
105void FAST_FUNC save_nofork_data(struct nofork_save_area *save) 71void FAST_FUNC save_nofork_data(struct nofork_save_area *save)
106{ 72{