diff options
Diffstat (limited to 'src/progman.c')
-rw-r--r-- | src/progman.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/progman.c b/src/progman.c index 5bc4eb3..a625885 100644 --- a/src/progman.c +++ b/src/progman.c | |||
@@ -326,3 +326,4 @@ progman_startup_phase (void) | |||
326 | { | 326 | { |
327 | if (IS_COMPONENT (prog) && prog->v.p.comp->mode == pies_comp_startup) | 327 | if (IS_COMPONENT (prog) && prog->v.p.comp->mode == pies_comp_startup |
328 | && prog->v.p.status == status_running) | ||
328 | return 1; | 329 | return 1; |
@@ -340,3 +341,3 @@ progman_waiting_p (void) | |||
340 | if (IS_COMPONENT (prog) | 341 | if (IS_COMPONENT (prog) |
341 | && prog->pid > 0 | 342 | && prog->v.p.status == status_running |
342 | && (prog->wait || prog->v.p.comp->mode == pies_comp_startup)) | 343 | && (prog->wait || prog->v.p.comp->mode == pies_comp_startup)) |
@@ -2358,10 +2359,2 @@ progman_cleanup (int expect_term) | |||
2358 | } | 2359 | } |
2359 | else if (prog->v.p.comp->mode == pies_comp_startup) | ||
2360 | { | ||
2361 | debug (1, (_("removing startup component %s, pid=%lu"), | ||
2362 | prog_tag (prog), (unsigned long)pid)); | ||
2363 | destroy_prog (&prog); | ||
2364 | if (!progman_startup_phase ()) | ||
2365 | pies_schedule_children (PIES_CHLD_WAKEUP); | ||
2366 | } | ||
2367 | else | 2360 | else |
@@ -2381,2 +2374,8 @@ progman_cleanup (int expect_term) | |||
2381 | } | 2374 | } |
2375 | else if (prog->v.p.comp->mode == pies_comp_startup) | ||
2376 | { | ||
2377 | prog->v.p.status = status_finished; | ||
2378 | if (!progman_startup_phase ()) | ||
2379 | pies_schedule_children (PIES_CHLD_WAKEUP); | ||
2380 | } | ||
2382 | else | 2381 | else |