summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/manager.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index 91d773c2f6..1d188081a1 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1144,7 +1144,7 @@ unsigned manager_dispatch_run_queue(Manager *m) {
m->dispatching_run_queue = false;
- if (hashmap_size(m->jobs) > 0)
+ if (m->n_running_jobs > 0)
manager_watch_jobs_in_progress(m);
return n;
@@ -2368,10 +2368,11 @@ void manager_check_finished(Manager *m) {
assert(m);
- if (hashmap_size(m->jobs) > 0) {
- manager_jobs_in_progress_mod_timer(m);
+ if (m->n_running_jobs == 0)
+ manager_unwatch_jobs_in_progress(m);
+
+ if (hashmap_size(m->jobs) > 0)
return;
- }
/* Notify Type=idle units that we are done now */
close_pipe(m->idle_pipe);
@@ -2379,8 +2380,6 @@ void manager_check_finished(Manager *m) {
/* Turn off confirm spawn now */
m->confirm_spawn = false;
- manager_unwatch_jobs_in_progress(m);
-
if (dual_timestamp_is_set(&m->finish_timestamp))
return;