summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/udev/udevd.c7
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;