chiark / gitweb /
manager: print ephemeral information about running jobs' timeouts (v2)
[elogind.git] / src / core / job.c
index 1bcf4968e2c5df0d31e59b0f771efd0382cfb2bc..941f9560258518f493f71c73c896947d1a22ea47 100644 (file)
@@ -864,11 +864,14 @@ static int job_dispatch_timer(sd_event_source *s, uint64_t monotonic, void *user
 int job_start_timer(Job *j) {
         int r;
 
-        if (j->unit->job_timeout <= 0 || j->timer_event_source)
+        if (j->timer_event_source)
                 return 0;
 
         j->begin_usec = now(CLOCK_MONOTONIC);
 
+        if (j->unit->job_timeout <= 0)
+                return 0;
+
         r = sd_event_add_monotonic(j->manager->event, j->begin_usec + j->unit->job_timeout, 0, job_dispatch_timer, j, &j->timer_event_source);
         if (r < 0)
                 return r;
@@ -1048,7 +1051,7 @@ int job_coldplug(Job *j) {
 
         assert(j);
 
-        if (j->begin_usec <= 0)
+        if (j->begin_usec == 0 || j->unit->job_timeout == 0)
                 return 0;
 
         if (j->timer_event_source)