summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-05-18 04:16:33 +0200
committerLennart Poettering <lennart@poettering.net>2010-05-18 04:16:33 +0200
commita4312405f209ff19fa071b15bda843f4e68ffbbc (patch)
treea66e85031550fd0f97a1fd58218511da1dd9f810
parentb86d44e5abc05dd13ad89cf1a4a69f32203f73e6 (diff)
manager: before entering loop dispatch queued up SIGCHLDs
-rw-r--r--src/manager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/manager.c b/src/manager.c
index 688d9fa65b..f6f205fac8 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -1939,6 +1939,11 @@ int manager_loop(Manager *m) {
assert(m);
m->exit_code = MANAGER_RUNNING;
+ /* There might still be some zombies hanging around from
+ * before we were exec()'ed. Leat's reap them */
+ if ((r = manager_dispatch_sigchld(m)) < 0)
+ return r;
+
while (m->exit_code == MANAGER_RUNNING) {
struct epoll_event event;
int n;