diff options
Diffstat (limited to 'src/udev/udevd.c')
-rw-r--r-- | src/udev/udevd.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/udev/udevd.c b/src/udev/udevd.c index f9fa3f6e66..8966fa777e 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -641,8 +641,11 @@ static void worker_returned(int fd_worker) { size = recvmsg(fd_worker, &msghdr, MSG_DONTWAIT); if (size < 0) { - if (errno == EAGAIN || errno == EINTR) - return; + if (errno == EINTR) + continue; + else if (errno == EAGAIN) + /* nothing more to read */ + break; log_error_errno(errno, "failed to receive message: %m"); return; |