unit-def: introduce freezer_state_objective()
No functional change, preparation for later commits.
This commit is contained in:
@@ -144,6 +144,16 @@ FreezerState freezer_state_finish(FreezerState state) {
|
||||
return freezer_state_finish_table[state];
|
||||
}
|
||||
|
||||
FreezerState freezer_state_objective(FreezerState state) {
|
||||
FreezerState objective;
|
||||
|
||||
objective = freezer_state_finish(state);
|
||||
if (objective == FREEZER_FROZEN_BY_PARENT)
|
||||
objective = FREEZER_FROZEN;
|
||||
|
||||
return objective;
|
||||
}
|
||||
|
||||
static const char* const unit_marker_table[_UNIT_MARKER_MAX] = {
|
||||
[UNIT_MARKER_NEEDS_RELOAD] = "needs-reload",
|
||||
[UNIT_MARKER_NEEDS_RESTART] = "needs-restart",
|
||||
|
||||
@@ -325,6 +325,7 @@ UnitActiveState unit_active_state_from_string(const char *s) _pure_;
|
||||
const char* freezer_state_to_string(FreezerState i) _const_;
|
||||
FreezerState freezer_state_from_string(const char *s) _pure_;
|
||||
FreezerState freezer_state_finish(FreezerState i) _const_;
|
||||
FreezerState freezer_state_objective(FreezerState state) _const_;
|
||||
|
||||
const char* unit_marker_to_string(UnitMarker m) _const_;
|
||||
UnitMarker unit_marker_from_string(const char *s) _pure_;
|
||||
|
||||
+2
-2
@@ -414,7 +414,7 @@ static void service_extend_timeout(Service *s, usec_t extend_timeout_usec) {
|
||||
static void service_reset_watchdog(Service *s) {
|
||||
assert(s);
|
||||
|
||||
if (freezer_state_finish(UNIT(s)->freezer_state) != FREEZER_RUNNING) {
|
||||
if (freezer_state_objective(UNIT(s)->freezer_state) != FREEZER_RUNNING) {
|
||||
log_unit_debug(UNIT(s), "Service is currently %s, skipping resetting watchdog.",
|
||||
freezer_state_to_string(UNIT(s)->freezer_state));
|
||||
return;
|
||||
@@ -1425,7 +1425,7 @@ static int service_coldplug(Unit *u) {
|
||||
(void) unit_setup_exec_runtime(u);
|
||||
|
||||
if (IN_SET(s->deserialized_state, SERVICE_START_POST, SERVICE_RUNNING, SERVICE_RELOAD, SERVICE_RELOAD_SIGNAL, SERVICE_RELOAD_NOTIFY, SERVICE_REFRESH_EXTENSIONS, SERVICE_MOUNTING) &&
|
||||
freezer_state_finish(u->freezer_state) == FREEZER_RUNNING)
|
||||
freezer_state_objective(u->freezer_state) == FREEZER_RUNNING)
|
||||
service_start_watchdog(s);
|
||||
|
||||
if (UNIT_ISSET(s->accept_socket)) {
|
||||
|
||||
+1
-3
@@ -6438,9 +6438,7 @@ void unit_next_freezer_state(Unit *u, FreezerAction action, FreezerState *ret_ne
|
||||
assert_not_reached();
|
||||
}
|
||||
|
||||
objective = freezer_state_finish(next);
|
||||
if (objective == FREEZER_FROZEN_BY_PARENT)
|
||||
objective = FREEZER_FROZEN;
|
||||
objective = freezer_state_objective(next);
|
||||
assert(IN_SET(objective, FREEZER_RUNNING, FREEZER_FROZEN));
|
||||
|
||||
*ret_next = next;
|
||||
|
||||
Reference in New Issue
Block a user