diff --git a/src/core/manager.c b/src/core/manager.c index b7af1594497..29bb7cca1ab 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -3419,7 +3419,7 @@ usec_t manager_get_watchdog(Manager *m, WatchdogType t) { if (MANAGER_IS_USER(m)) return USEC_INFINITY; - if (timestamp_is_set(m->watchdog_overridden[t])) + if (m->watchdog_overridden[t] != USEC_INFINITY) return m->watchdog_overridden[t]; return m->watchdog[t]; @@ -3435,17 +3435,18 @@ void manager_set_watchdog(Manager *m, WatchdogType t, usec_t timeout) { if (m->watchdog[t] == timeout) return; - if (t == WATCHDOG_RUNTIME) { - if (!timestamp_is_set(m->watchdog_overridden[WATCHDOG_RUNTIME])) + if (m->watchdog_overridden[t] == USEC_INFINITY) { + if (t == WATCHDOG_RUNTIME) (void) watchdog_setup(timeout); - } else if (t == WATCHDOG_PRETIMEOUT) - if (m->watchdog_overridden[WATCHDOG_PRETIMEOUT] == USEC_INFINITY) + else if (t == WATCHDOG_PRETIMEOUT) (void) watchdog_setup_pretimeout(timeout); + } m->watchdog[t] = timeout; } void manager_override_watchdog(Manager *m, WatchdogType t, usec_t timeout) { + usec_t usec; assert(m); @@ -3455,12 +3456,11 @@ void manager_override_watchdog(Manager *m, WatchdogType t, usec_t timeout) { if (m->watchdog_overridden[t] == timeout) return; - if (t == WATCHDOG_RUNTIME) { - usec_t usec = timestamp_is_set(timeout) ? timeout : m->watchdog[t]; - + usec = (timeout == USEC_INFINITY) ? m->watchdog[t] : timeout; + if (t == WATCHDOG_RUNTIME) (void) watchdog_setup(usec); - } else if (t == WATCHDOG_PRETIMEOUT) - (void) watchdog_setup_pretimeout(timeout); + else if (t == WATCHDOG_PRETIMEOUT) + (void) watchdog_setup_pretimeout(usec); m->watchdog_overridden[t] = timeout; }