summaryrefslogtreecommitdiff
path: root/runit
diff options
context:
space:
mode:
Diffstat (limited to 'runit')
-rw-r--r--runit/runsv.c5
-rw-r--r--runit/runsvdir.c2
-rw-r--r--runit/sv.c3
-rw-r--r--runit/svlogd.c4
4 files changed, 6 insertions, 8 deletions
diff --git a/runit/runsv.c b/runit/runsv.c
index 8c5a4d4..84f5193 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -282,8 +282,7 @@ static unsigned custom(struct svdir *s, char c)
execve(a, prog, environ);
fatal_cannot("run control/?");
}
- while (wait_pid(&w, pid) == -1) {
- if (errno == EINTR) continue;
+ while (safe_waitpid(pid, &w, 0) == -1) {
warn_cannot("wait for child control/?");
return 0;
}
@@ -593,7 +592,7 @@ int runsv_main(int argc, char **argv)
int child;
int wstat;
- child = wait_nohang(&wstat);
+ child = wait_any_nohang(&wstat);
if (!child)
break;
if ((child == -1) && (errno != EINTR))
diff --git a/runit/runsvdir.c b/runit/runsvdir.c
index 9e98ca6..8384903 100644
--- a/runit/runsvdir.c
+++ b/runit/runsvdir.c
@@ -252,7 +252,7 @@ int runsvdir_main(int argc, char **argv)
for (;;) {
/* collect children */
for (;;) {
- pid = wait_nohang(&wstat);
+ pid = wait_any_nohang(&wstat);
if (pid <= 0)
break;
for (i = 0; i < svnum; i++) {
diff --git a/runit/sv.c b/runit/sv.c
index e31adff..a89e244 100644
--- a/runit/sv.c
+++ b/runit/sv.c
@@ -333,8 +333,7 @@ static int checkscript(void)
bb_perror_msg(WARN"cannot %s child %s/check", "run", *service);
return 0;
}
- while (wait_pid(&w, pid) == -1) {
- if (errno == EINTR) continue;
+ while (safe_waitpid(pid, &w, 0) == -1) {
bb_perror_msg(WARN"cannot %s child %s/check", "wait for", *service);
return 0;
}
diff --git a/runit/svlogd.c b/runit/svlogd.c
index 2dc8cb9..1d679c9 100644
--- a/runit/svlogd.c
+++ b/runit/svlogd.c
@@ -265,7 +265,7 @@ static unsigned processorstop(struct logdir *ld)
if (ld->ppid) {
sig_unblock(SIGHUP);
- while (wait_pid(&wstat, ld->ppid) == -1)
+ while (safe_waitpid(ld->ppid, &wstat, 0) == -1)
pause2cannot("wait for processor", ld->name);
sig_block(SIGHUP);
ld->ppid = 0;
@@ -794,7 +794,7 @@ static void sig_child_handler(int sig_no)
if (verbose)
bb_error_msg(INFO"sig%s received", "child");
- while ((pid = wait_nohang(&wstat)) > 0) {
+ while ((pid = wait_any_nohang(&wstat)) > 0) {
for (l = 0; l < dirn; ++l) {
if (dir[l].ppid == pid) {
dir[l].ppid = 0;