chiark / gitweb /
sd-event: sd_event_prepare - stay in PREPARED if sd_event_wait() indicates that no...
[elogind.git] / src / libsystemd / sd-event / sd-event.c
index a71962c24cc1f8cd5e227739ae5a893d3a3dd6ae..32777e386b3f6b0d68f401d5a53b91eb7edb725e 100644 (file)
@@ -2256,7 +2256,11 @@ _public_ int sd_event_prepare(sd_event *e) {
 
 pending:
         e->state = SD_EVENT_PREPARED;
-        return sd_event_wait(e, 0);
+        r = sd_event_wait(e, 0);
+        if (r == 0)
+                e->state = SD_EVENT_PREPARED;
+
+        return r;
 }
 
 _public_ int sd_event_wait(sd_event *e, uint64_t timeout) {