summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-bus/bus-util.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-02-13 16:20:45 +0100
committerTom Gundersen <teg@jklm.no>2015-02-13 16:32:02 +0100
commita8ba6cd15d3a5edf1f9fbb4fd08dc428c3939072 (patch)
treed182ace795264b6d608576a24762b4c22824c30e /src/libsystemd/sd-bus/bus-util.c
parent5f6cb091278906423f8b7e70c40131db7269916a (diff)
exit-on-idle: only exit if actually idle
sd_event_wait() returning 0 usually means that it timed out, which means it must have been idle. However, sd_event_wait() may return 0 in case an event was triggered but it turned out there was nothing to do. Make the check for idle explicit to avoid this edge-case.
Diffstat (limited to 'src/libsystemd/sd-bus/bus-util.c')
-rw-r--r--src/libsystemd/sd-bus/bus-util.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libsystemd/sd-bus/bus-util.c b/src/libsystemd/sd-bus/bus-util.c
index c9d8713b25..52d4ebe611 100644
--- a/src/libsystemd/sd-bus/bus-util.c
+++ b/src/libsystemd/sd-bus/bus-util.c
@@ -123,7 +123,7 @@ int bus_event_loop_with_idle(
if (r < 0)
return r;
- if (r == 0 && !exiting) {
+ if (r == 0 && !exiting && idle) {
r = sd_bus_try_close(bus);
if (r == -EBUSY)