Based on eec6022cf039e62233139000b9e95db943959e48 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 5 Jun 2014 13:43:30 +0200 Subject: [PATCH] sd-event: restore correct timeout behaviour --- src/libsystemd/sd-event/sd-event.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) --- src/libsystemd/sd-event/sd-event.c +++ src/libsystemd/sd-event/sd-event.c 2014-06-06 10:26:51.422235695 +0000 @@ -2047,6 +2047,7 @@ _public_ int sd_event_run(sd_event *e, u unsigned ev_queue_max; sd_event_source *p; int r, i, m; + bool timedout; assert_return(e, -EINVAL); assert_return(!event_pid_changed(e), -ECHILD); @@ -2084,6 +2085,8 @@ _public_ int sd_event_run(sd_event *e, u goto finish; } + timedout = m == 0; + dual_timestamp_get(&e->timestamp); for (i = 0; i < m; i++) { @@ -2123,7 +2126,7 @@ _public_ int sd_event_run(sd_event *e, u p = event_next_pending(e); if (!p) { - r = 1; + r = !timedout; goto finish; }