mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
core: introduce MANAGER_IS_RELOADING() macro
This replaces the old function call manager_is_reloading_or_reexecuting() which was used only at very few places. Use the new macro wherever we check whether we are reloading. This should hopefully make things a bit more readable, given the nature of Manager:n_reloading being a counter.
This commit is contained in:
parent
463d0d1569
commit
2c289ea833
@ -137,7 +137,7 @@ void job_uninstall(Job *j) {
|
||||
/* Detach from next 'bigger' objects */
|
||||
|
||||
/* daemon-reload should be transparent to job observers */
|
||||
if (j->manager->n_reloading <= 0)
|
||||
if (!MANAGER_IS_RELOADING(j->manager))
|
||||
bus_job_send_removed_signal(j);
|
||||
|
||||
*pj = NULL;
|
||||
|
@ -2115,7 +2115,7 @@ void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success) {
|
||||
|
||||
/* Don't generate audit events if the service was already
|
||||
* started and we're just deserializing */
|
||||
if (m->n_reloading > 0)
|
||||
if (MANAGER_IS_RELOADING(m))
|
||||
return;
|
||||
|
||||
if (u->type != UNIT_SERVICE)
|
||||
@ -2149,7 +2149,7 @@ void manager_send_unit_plymouth(Manager *m, Unit *u) {
|
||||
|
||||
/* Don't generate plymouth events if the service was already
|
||||
* started and we're just deserializing */
|
||||
if (m->n_reloading > 0)
|
||||
if (MANAGER_IS_RELOADING(m))
|
||||
return;
|
||||
|
||||
if (!MANAGER_IS_SYSTEM(m))
|
||||
@ -2572,12 +2572,6 @@ int manager_reload(Manager *m) {
|
||||
return r;
|
||||
}
|
||||
|
||||
bool manager_is_reloading_or_reexecuting(Manager *m) {
|
||||
assert(m);
|
||||
|
||||
return m->n_reloading != 0;
|
||||
}
|
||||
|
||||
void manager_reset_failed(Manager *m) {
|
||||
Unit *u;
|
||||
Iterator i;
|
||||
@ -2674,7 +2668,7 @@ static void manager_notify_finished(Manager *m) {
|
||||
void manager_check_finished(Manager *m) {
|
||||
assert(m);
|
||||
|
||||
if (m->n_reloading > 0)
|
||||
if (MANAGER_IS_RELOADING(m))
|
||||
return;
|
||||
|
||||
/* Verify that we are actually running currently. Initially
|
||||
|
@ -306,6 +306,8 @@ struct Manager {
|
||||
#define MANAGER_IS_SYSTEM(m) ((m)->unit_file_scope == UNIT_FILE_SYSTEM)
|
||||
#define MANAGER_IS_USER(m) ((m)->unit_file_scope != UNIT_FILE_SYSTEM)
|
||||
|
||||
#define MANAGER_IS_RELOADING(m) ((m)->n_reloading > 0)
|
||||
|
||||
int manager_new(UnitFileScope scope, bool test_run, Manager **m);
|
||||
Manager* manager_free(Manager *m);
|
||||
|
||||
@ -344,8 +346,6 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds);
|
||||
|
||||
int manager_reload(Manager *m);
|
||||
|
||||
bool manager_is_reloading_or_reexecuting(Manager *m) _pure_;
|
||||
|
||||
void manager_reset_failed(Manager *m);
|
||||
|
||||
void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success);
|
||||
|
@ -138,7 +138,7 @@ static int scope_verify(Scope *s) {
|
||||
return 0;
|
||||
|
||||
if (set_isempty(UNIT(s)->pids) &&
|
||||
!manager_is_reloading_or_reexecuting(UNIT(s)->manager) &&
|
||||
!MANAGER_IS_RELOADING(UNIT(s)->manager) &&
|
||||
!unit_has_name(UNIT(s), SPECIAL_INIT_SCOPE)) {
|
||||
log_unit_error(UNIT(s), "Scope has no PIDs. Refusing.");
|
||||
return -EINVAL;
|
||||
@ -154,7 +154,7 @@ static int scope_load(Unit *u) {
|
||||
assert(s);
|
||||
assert(u->load_state == UNIT_STUB);
|
||||
|
||||
if (!u->transient && !manager_is_reloading_or_reexecuting(u->manager))
|
||||
if (!u->transient && !MANAGER_IS_RELOADING(u->manager))
|
||||
return -ENOENT;
|
||||
|
||||
u->load_state = UNIT_LOADED;
|
||||
@ -292,7 +292,7 @@ static int scope_start(Unit *u) {
|
||||
|
||||
assert(s->state == SCOPE_DEAD);
|
||||
|
||||
if (!u->transient && !manager_is_reloading_or_reexecuting(u->manager))
|
||||
if (!u->transient && !MANAGER_IS_RELOADING(u->manager))
|
||||
return -ENOENT;
|
||||
|
||||
(void) unit_realize_cgroup(u);
|
||||
|
@ -920,7 +920,7 @@ static void service_set_state(Service *s, ServiceState state) {
|
||||
|
||||
/* For the inactive states unit_notify() will trim the cgroup,
|
||||
* but for exit we have to do that ourselves... */
|
||||
if (state == SERVICE_EXITED && UNIT(s)->manager->n_reloading <= 0)
|
||||
if (state == SERVICE_EXITED && !MANAGER_IS_RELOADING(UNIT(s)->manager))
|
||||
unit_prune_cgroup(UNIT(s));
|
||||
|
||||
/* For remain_after_exit services, let's see if we can "release" the
|
||||
|
@ -855,7 +855,7 @@ int transaction_add_job_and_dependencies(
|
||||
* This matters when jobs are spawned as part of coldplugging itself (see e. g. path_coldplug()).
|
||||
* This way, we "recursively" coldplug units, ensuring that we do not look at state of
|
||||
* not-yet-coldplugged units. */
|
||||
if (unit->manager->n_reloading > 0)
|
||||
if (MANAGER_IS_RELOADING(unit->manager))
|
||||
unit_coldplug(unit);
|
||||
|
||||
/* log_debug("Pulling in %s/%s from %s/%s", */
|
||||
|
@ -483,7 +483,7 @@ void unit_free(Unit *u) {
|
||||
|
||||
assert(u);
|
||||
|
||||
if (u->manager->n_reloading <= 0)
|
||||
if (!MANAGER_IS_RELOADING(u->manager))
|
||||
unit_remove_transient(u);
|
||||
|
||||
bus_unit_send_removed_signal(u);
|
||||
@ -1834,7 +1834,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
m = u->manager;
|
||||
|
||||
/* Update timestamps for state changes */
|
||||
if (m->n_reloading <= 0) {
|
||||
if (!MANAGER_IS_RELOADING(m)) {
|
||||
dual_timestamp_get(&u->state_change_timestamp);
|
||||
|
||||
if (UNIT_IS_INACTIVE_OR_FAILED(os) && !UNIT_IS_INACTIVE_OR_FAILED(ns))
|
||||
@ -1941,7 +1941,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
} else
|
||||
unexpected = true;
|
||||
|
||||
if (m->n_reloading <= 0) {
|
||||
if (!MANAGER_IS_RELOADING(m)) {
|
||||
|
||||
/* If this state change happened without being
|
||||
* requested by a job, then let's retroactively start
|
||||
@ -1978,7 +1978,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
|
||||
if (u->type == UNIT_SERVICE &&
|
||||
!UNIT_IS_ACTIVE_OR_RELOADING(os) &&
|
||||
m->n_reloading <= 0) {
|
||||
!MANAGER_IS_RELOADING(m)) {
|
||||
/* Write audit record if we have just finished starting up */
|
||||
manager_send_unit_audit(m, u, AUDIT_SERVICE_START, true);
|
||||
u->in_audit = true;
|
||||
@ -1995,7 +1995,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
if (u->type == UNIT_SERVICE &&
|
||||
UNIT_IS_INACTIVE_OR_FAILED(ns) &&
|
||||
!UNIT_IS_INACTIVE_OR_FAILED(os) &&
|
||||
m->n_reloading <= 0) {
|
||||
!MANAGER_IS_RELOADING(m)) {
|
||||
|
||||
/* Hmm, if there was no start record written
|
||||
* write it now, so that we always have a nice
|
||||
@ -2016,7 +2016,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su
|
||||
manager_recheck_journal(m);
|
||||
unit_trigger_notify(u);
|
||||
|
||||
if (u->manager->n_reloading <= 0) {
|
||||
if (!MANAGER_IS_RELOADING(u->manager)) {
|
||||
/* Maybe we finished startup and are now ready for
|
||||
* being stopped because unneeded? */
|
||||
unit_check_unneeded(u);
|
||||
|
Loading…
Reference in New Issue
Block a user