diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c index 015a215c42..f9d426f4f2 100644 --- a/src/libsystemd/sd-bus/sd-bus.c +++ b/src/libsystemd/sd-bus/sd-bus.c @@ -2120,12 +2120,13 @@ int bus_ensure_running(sd_bus *bus) { assert(bus); - if (IN_SET(bus->state, BUS_UNSET, BUS_CLOSED, BUS_CLOSING)) - return -ENOTCONN; if (bus->state == BUS_RUNNING) return 1; for (;;) { + if (IN_SET(bus->state, BUS_UNSET, BUS_CLOSED, BUS_CLOSING)) + return -ENOTCONN; + r = sd_bus_process(bus, NULL); if (r < 0) return r;