udev,network: skip reloading if already in stopping state (#43504)

Prompted by #43482.
This commit is contained in:
Yu Watanabe
2026-08-27 00:26:58 +09:00
committed by GitHub
2 changed files with 14 additions and 0 deletions
+5
View File
@@ -515,6 +515,8 @@ static int manager_stop(Manager *manager, ManagerState state) {
assert_not_reached();
}
(void) sd_notify(/* unset_environment= */ false, NOTIFY_STOPPING_MESSAGE);
manager->state = state;
Link *link;
@@ -1273,6 +1275,9 @@ int manager_reload(Manager *m, sd_bus_message *message, sd_varlink *varlink, boo
assert(m);
assert(!message || !varlink); /* D-Bus and Varlink callers are mutually exclusive */
if (m->state != MANAGER_RUNNING)
return -ESHUTDOWN; /* Refuse reloading if we are stopping or restarting. */
log_debug("Reloading...");
(void) notify_reloading();
+9
View File
@@ -247,6 +247,9 @@ int manager_reset_kill_workers_timer(Manager *manager) {
void manager_exit(Manager *manager) {
assert(manager);
if (manager->exit)
return;
manager->exit = true;
(void) sd_notify(/* unset_environment= */ false, NOTIFY_STOPPING_MESSAGE);
@@ -277,6 +280,9 @@ void notify_ready(Manager *manager) {
assert(manager);
if (manager->exit)
return;
r = sd_notifyf(/* unset_environment= */ false,
"READY=1\n"
"STATUS=Processing with %u children at max", manager->config.children_max);
@@ -292,6 +298,9 @@ void manager_reload(Manager *manager, bool force) {
assert(manager);
if (manager->exit)
return;
assert_se(sd_event_now(manager->event, CLOCK_MONOTONIC, &now_usec) >= 0);
if (!force && now_usec < usec_add(manager->last_usec, 3 * USEC_PER_SEC))
/* check for changed config, every 3 seconds at most */