From: Michael Marineau Date: Mon, 12 May 2014 07:26:16 +0000 (+0200) Subject: job: always add waiting jobs to run queue during coldplug X-Git-Tag: v213~185 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1727a595225132eb73ec134b6979d9c713b42e8c;hp=fbbeb65a93e2f90f6576001b69def877cd98722d;ds=sidebyside job: always add waiting jobs to run queue during coldplug commit 20a83d7bf was not equivalent to the original bug fix proposed by Michal Sekletar . The committed version only added the job to the run queue if the job had a timeout, which most jobs do not have. Just re-ordering the code gets us the intended functionality --- diff --git a/src/core/job.c b/src/core/job.c index 835cfe173..dc4f44150 100644 --- a/src/core/job.c +++ b/src/core/job.c @@ -1060,15 +1060,15 @@ int job_coldplug(Job *j) { if (r < 0) return r; + if (j->state == JOB_WAITING) + job_add_to_run_queue(j); + if (j->begin_usec == 0 || j->unit->job_timeout == 0) return 0; if (j->timer_event_source) j->timer_event_source = sd_event_source_unref(j->timer_event_source); - if (j->state == JOB_WAITING) - job_add_to_run_queue(j); - r = sd_event_add_time( j->manager->event, &j->timer_event_source,