diff options
Diffstat (limited to 'src/udev/udevd.c')
-rw-r--r-- | src/udev/udevd.c | 8 |
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); |