sd-event: restore correct timeout behaviour
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user