summaryrefslogtreecommitdiff
path: root/src/udev/udevd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/udev/udevd.c')
-rw-r--r--src/udev/udevd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 892637f052..a9e82de4cd 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -1042,12 +1042,12 @@ static int on_sigchld(sd_event_source *s, const struct signalfd_siginfo *si, voi
pid = waitpid(-1, &status, WNOHANG);
if (pid <= 0)
- return 1;
+ break;
worker = hashmap_get(manager->workers, UINT_TO_PTR(pid));
if (!worker) {
log_warning("worker ["PID_FMT"] is unknown, ignoring", pid);
- return 1;
+ continue;
}
if (WIFEXITED(status)) {
@@ -1059,10 +1059,10 @@ static int on_sigchld(sd_event_source *s, const struct signalfd_siginfo *si, voi
log_warning("worker ["PID_FMT"] terminated by signal %i (%s)", pid, WTERMSIG(status), strsignal(WTERMSIG(status)));
} else if (WIFSTOPPED(status)) {
log_info("worker ["PID_FMT"] stopped", pid);
- return 1;
+ continue;
} else if (WIFCONTINUED(status)) {
log_info("worker ["PID_FMT"] continued", pid);
- return 1;
+ continue;
} else
log_warning("worker ["PID_FMT"] exit with status 0x%04x", pid, status);