From b7a5b9e79ce306e020bb7083a04ca5d327cf7920 Mon Sep 17 00:00:00 2001 From: Matthieu Herrb Date: Wed, 11 Jul 2018 16:57:05 +0000 Subject: Keep a better trace of pending children to be reaped. --- xenodm/dm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xenodm/dm.c b/xenodm/dm.c index 8700592..77920b5 100644 --- a/xenodm/dm.c +++ b/xenodm/dm.c @@ -57,7 +57,7 @@ static void ScanServers (void); static void SetConfigFileTime (void); static void StartDisplays (void); -volatile int Rescan; +static volatile int Rescan = 0; static long ServersModTime, ConfigModTime; int nofork_session = 0; @@ -279,7 +279,7 @@ StopAll (int n) * sub-daemon started */ -int ChildReady; +static volatile int ChildReady = 0; /* ARGSUSED */ static void @@ -287,7 +287,7 @@ ChildNotify (int n) { int olderrno = errno; - ChildReady = 1; + ChildReady++; errno = olderrno; } @@ -306,12 +306,12 @@ WaitForChild (void) Debug ("signals blocked\n"); if (!ChildReady && !Rescan) sigsuspend(&omask); - ChildReady = 0; sigprocmask(SIG_SETMASK, &omask, (sigset_t *)NULL); while ((pid = waitpid (-1, &status, WNOHANG)) > 0) { Debug ("Manager wait returns pid: %d sig %d core %d code %d\n", pid, waitSig(status), waitCore(status), waitCode(status)); + ChildReady--; if (autoRescan) RescanIfMod (); /* SUPPRESS 560 */ -- cgit v1.2.3