]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
scope: Refactor timer handling on coldplug
authorPhilip Withnall <withnall@endlessm.com>
Wed, 12 Jun 2019 07:23:24 +0000 (08:23 +0100)
committerPhilip Withnall <withnall@endlessm.com>
Mon, 29 Jul 2019 11:13:52 +0000 (12:13 +0100)
Factor it out into a helper function which is a bit easier to expand in
future. This introduces no functional changes.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
src/core/scope.c

index bb1e60dd11fa56ab4b589f01ab43afbeb6b5931d..5303142d09d0bebd23db2d4c7b45bfb614ecdd99 100644 (file)
@@ -197,6 +197,20 @@ static int scope_load(Unit *u) {
         return scope_verify(s);
 }
 
+static usec_t scope_coldplug_timeout(Scope *s) {
+        assert(s);
+
+        switch (s->deserialized_state) {
+
+        case SCOPE_STOP_SIGKILL:
+        case SCOPE_STOP_SIGTERM:
+                return usec_add(UNIT(s)->state_change_timestamp.monotonic, s->timeout_stop_usec);
+
+        default:
+                return USEC_INFINITY;
+        }
+}
+
 static int scope_coldplug(Unit *u) {
         Scope *s = SCOPE(u);
         int r;
@@ -207,11 +221,9 @@ static int scope_coldplug(Unit *u) {
         if (s->deserialized_state == s->state)
                 return 0;
 
-        if (IN_SET(s->deserialized_state, SCOPE_STOP_SIGKILL, SCOPE_STOP_SIGTERM)) {
-                r = scope_arm_timer(s, usec_add(u->state_change_timestamp.monotonic, s->timeout_stop_usec));
-                if (r < 0)
-                        return r;
-        }
+        r = scope_arm_timer(s, scope_coldplug_timeout(s));
+        if (r < 0)
+                return r;
 
         if (!IN_SET(s->deserialized_state, SCOPE_DEAD, SCOPE_FAILED))
                 (void) unit_enqueue_rewatch_pids(u);