diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-06-05 13:43:30 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-06-05 13:50:35 +0200 |
commit | eec6022cf039e62233139000b9e95db943959e48 (patch) | |
tree | ad31507851ea3fb4e336c9c8489d14a38acb52a5 /src/libsystemd/sd-event/sd-event.c | |
parent | 945933e331794b695c85c29369266daa30a50947 (diff) |
sd-event: restore correct timeout behaviour
Diffstat (limited to 'src/libsystemd/sd-event/sd-event.c')
-rw-r--r-- | src/libsystemd/sd-event/sd-event.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index c48fa37e89..53f1904d3d 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -2180,6 +2180,7 @@ _public_ int sd_event_run(sd_event *e, uint64_t timeout) { 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); @@ -2226,6 +2227,8 @@ _public_ int sd_event_run(sd_event *e, uint64_t timeout) { goto finish; } + timedout = m == 0; + dual_timestamp_get(&e->timestamp); e->timestamp_boottime = now(CLOCK_BOOTTIME); @@ -2278,7 +2281,7 @@ _public_ int sd_event_run(sd_event *e, uint64_t timeout) { p = event_next_pending(e); if (!p) { - r = 1; + r = !timedout; goto finish; } |