diff options
Diffstat (limited to 'initd/supervisor.c')
-rw-r--r-- | initd/supervisor.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/initd/supervisor.c b/initd/supervisor.c index c1b44e7..d54b9ca 100644 --- a/initd/supervisor.c +++ b/initd/supervisor.c @@ -185,7 +185,7 @@ static pid_t wait_for_process(int *status) return pid; } -bool supervisor_process_queues(void) +void supervisor_process_queues(void) { svc_run_data_t *rt; service_t *svc; @@ -194,8 +194,12 @@ bool supervisor_process_queues(void) pid_t pid; count = queue_count[target]; - if (queue_idx >= count) - return false; + + if (queue_idx >= count) { + pid = wait_for_process(&status); + supervisor_handle_exited(pid, status); + return; + } rt = rt_data + queue_start[target] + queue_idx++; svc = rt->svc; @@ -235,5 +239,4 @@ bool supervisor_process_queues(void) } check_target_completion(); - return true; } |