summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus/sd-event.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-10-16 05:57:41 +0200
committerLennart Poettering <lennart@poettering.net>2013-10-16 06:15:00 +0200
commitd09d5ecda2172ba539f1b08da9f3e9787be37229 (patch)
treeaf7d62785e864aa3d2952bc9b8f30748680ba5fc /src/libsystemd-bus/sd-event.c
parent72aedc1e80c7370e3413300c5d2ec04ac1713e0b (diff)
event: handle arbitrary signals received during epoll gracefully
Diffstat (limited to 'src/libsystemd-bus/sd-event.c')
-rw-r--r--src/libsystemd-bus/sd-event.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libsystemd-bus/sd-event.c b/src/libsystemd-bus/sd-event.c
index dd8d3ee62..ace97dc73 100644
--- a/src/libsystemd-bus/sd-event.c
+++ b/src/libsystemd-bus/sd-event.c
@@ -1748,7 +1748,7 @@ int sd_event_run(sd_event *e, uint64_t timeout) {
m = epoll_wait(e->epoll_fd, ev_queue, EPOLL_QUEUE_MAX,
timeout == (uint64_t) -1 ? -1 : (int) ((timeout + USEC_PER_MSEC - 1) / USEC_PER_MSEC));
if (m < 0) {
- r = m;
+ r = errno == EAGAIN || errno == EINTR ? 0 : -errno;
goto finish;
}