From: Lennart Poettering Date: Tue, 9 Oct 2018 15:58:08 +0000 (+0200) Subject: core: rework how we set the objective to MANAGER_OK X-Git-Tag: v240~585^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1fb70e66488d6c124d1d1e8d7cc2a98d2da5eb23;p=thirdparty%2Fsystemd.git core: rework how we set the objective to MANAGER_OK Let's do so already when we are about to complete startup/reload, so that manager_catchup() is run in a context where MANAGER_IS_RUNNING() returns true, as the intention is. Fixes: #9518 --- diff --git a/src/core/manager.c b/src/core/manager.c index 5a5212f6c2f..0282ae32538 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1680,6 +1680,8 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) { m->send_reloading_done = true; } + m->objective = MANAGER_OK; + /* It might be safe to log to the journal now and connect to dbus */ manager_recheck_journal(m); manager_recheck_dbus(m); @@ -2811,7 +2813,7 @@ int manager_loop(Manager *m) { RATELIMIT_DEFINE(rl, 1*USEC_PER_SEC, 50000); assert(m); - m->objective = MANAGER_OK; + assert(m->objective == MANAGER_OK); /* Ensure manager_startup() has been called */ /* Release the path cache */ m->unit_path_cache = set_free_free(m->unit_path_cache); @@ -3550,6 +3552,7 @@ int manager_reload(Manager *m) { /* Consider the reload process complete now. */ assert(m->n_reloading > 0); m->n_reloading--; + m->objective = MANAGER_OK; /* It might be safe to log to the journal now and connect to dbus */ manager_recheck_journal(m);