From: Lennart Poettering Date: Fri, 10 Apr 2015 16:45:39 +0000 (+0200) Subject: sd-event: simplify sd_event_run() X-Git-Tag: v226.4~1^2~485 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9cd66b6bb933e4e307aa9e7cfc664e8916e0a3f0;p=elogind.git sd-event: simplify sd_event_run() --- diff --git a/src/libelogind/sd-event/sd-event.c b/src/libelogind/sd-event/sd-event.c index 376477f27..0dc468037 100644 --- a/src/libelogind/sd-event/sd-event.c +++ b/src/libelogind/sd-event/sd-event.c @@ -2490,24 +2490,20 @@ _public_ int sd_event_run(sd_event *e, uint64_t timeout) { assert_return(e->state == SD_EVENT_INITIAL, -EBUSY); r = sd_event_prepare(e); - if (r > 0) { - r = sd_event_dispatch(e); - if (r < 0) - return r; - else - return 1; - } else if (r < 0) - return r; + if (r == 0) + /* There was nothing? Then wait... */ + r = sd_event_wait(e, timeout); - r = sd_event_wait(e, timeout); if (r > 0) { + /* There's something now, then let's dispatch it */ r = sd_event_dispatch(e); if (r < 0) return r; - else - return 1; - } else - return r; + + return 1; + } + + return r; } _public_ int sd_event_loop(sd_event *e) {