X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmanager.c;h=af508ef30c9cea401486fadf746a776e7c926c00;hb=3a43da2832dc5360a638d043f469a6dcbe025582;hp=2e63c5ef1f967cb8c704dba36da5375cda6c8a2b;hpb=0d8c31ff7237149b505290652864b4e7e866b2a7;p=elogind.git diff --git a/src/core/manager.c b/src/core/manager.c index 2e63c5ef1..af508ef30 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1005,11 +1005,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { dual_timestamp_get(&m->units_load_finish_timestamp); /* Second, deserialize if there is something to deserialize */ - if (serialization) { - q = manager_deserialize(m, serialization, fds); - if (q < 0) - r = q; - } + if (serialization) + r = manager_deserialize(m, serialization, fds); /* Any fds left? Find some unit which wants them. This is * useful to allow container managers to pass some file @@ -1017,13 +1014,15 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { * socket-based activation of entire containers. */ if (fdset_size(fds) > 0) { q = manager_distribute_fds(m, fds); - if (q < 0) + if (q < 0 && r == 0) r = q; } /* We might have deserialized the notify fd, but if we didn't * then let's create the bus now */ - manager_setup_notify(m); + q = manager_setup_notify(m); + if (q < 0 && r == 0) + r = q; /* We might have deserialized the kdbus control fd, but if we * didn't, then let's create the bus now. */ @@ -1033,7 +1032,7 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { /* Third, fire things up! */ q = manager_coldplug(m); - if (q < 0) + if (q < 0 && r == 0) r = q; if (serialization) { @@ -1876,7 +1875,7 @@ int manager_loop(Manager *m) { if (wait_usec <= 0) wait_usec = 1; } else - wait_usec = (usec_t) -1; + wait_usec = USEC_INFINITY; r = sd_event_run(m->event, wait_usec); if (r < 0) {