]> err.no Git - systemd/commitdiff
manager: before entering loop dispatch queued up SIGCHLDs
authorLennart Poettering <lennart@poettering.net>
Tue, 18 May 2010 02:16:33 +0000 (04:16 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 18 May 2010 02:16:33 +0000 (04:16 +0200)
src/manager.c

index 688d9fa65b28e831217faee879cf4977a241006f..f6f205fac8aefc6383516b4530ee0cd7f7bd82fd 100644 (file)
@@ -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;