38 lines
1.1 KiB
Diff
38 lines
1.1 KiB
Diff
Based on eec6022cf039e62233139000b9e95db943959e48 Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <lennart@poettering.net>
|
|
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;
|
|
}
|
|
|