From: Lennart Poettering Date: Wed, 16 Oct 2013 03:57:41 +0000 (+0200) Subject: event: handle arbitrary signals received during epoll gracefully X-Git-Tag: v209~1863 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=d09d5ecda2172ba539f1b08da9f3e9787be37229 event: handle arbitrary signals received during epoll gracefully --- 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; }