[patch xdm 3/4] Remove support for UNRELIABLE_SIGNALS

Matthieu Herrb matthieu at herrb.eu
Wed Dec 2 03:22:23 PST 2015


Nothing has been setting this since the modularization.x

Signed-off-by: Matthieu Herrb <matthieu at herrb.eu>
---
 xdm/dm.c | 31 ++++++++++---------------------
 1 file changed, 10 insertions(+), 21 deletions(-)

diff --git xdm/dm.c xdm/dm.c
index 6260324..1f2aefb 100644
--- xdm/dm.c
+++ xdm/dm.c
@@ -106,9 +106,7 @@ static char *Title;
 static int TitleLen;
 #endif
 
-#ifndef UNRELIABLE_SIGNALS
 static void ChildNotify (int n);
-#endif
 
 static long StorePid (void);
 static void RemovePid (void);
@@ -248,9 +246,7 @@ main (int argc, char **argv)
     AddOtherEntropy();
 #endif
     (void) Signal (SIGHUP, RescanNotify);
-#ifndef UNRELIABLE_SIGNALS
     (void) Signal (SIGCHLD, ChildNotify);
-#endif
     Debug ("startup successful; entering main loop\n");
     while (
 #ifdef XDMCP
@@ -263,7 +259,7 @@ main (int argc, char **argv)
 	    RescanServers ();
 	    Rescan = 0;
 	}
-#if defined(UNRELIABLE_SIGNALS) || !defined(XDMCP)
+#if !defined(XDMCP)
 	WaitForChild ();
 #else
 	WaitForSomething ();
@@ -462,7 +458,6 @@ StopAll (int n)
 
 int	ChildReady;
 
-#ifndef UNRELIABLE_SIGNALS
 /* ARGSUSED */
 static void
 ChildNotify (int n)
@@ -472,7 +467,6 @@ ChildNotify (int n)
     ChildReady = 1;
     errno = olderrno;
 }
-#endif
 
 void
 WaitForChild (void)
@@ -486,34 +480,29 @@ WaitForChild (void)
     int		omask;
 #endif
 
-#ifdef UNRELIABLE_SIGNALS
-    /* XXX classic System V signal race condition here with RescanNotify */
-    if ((pid = wait (&status)) != -1)
-#else
-# ifndef X_NOT_POSIX
+#ifndef X_NOT_POSIX
     sigemptyset(&mask);
     sigaddset(&mask, SIGCHLD);
     sigaddset(&mask, SIGHUP);
     sigprocmask(SIG_BLOCK, &mask, &omask);
     Debug ("signals blocked\n");
-# else
+#else
     omask = sigblock (sigmask (SIGCHLD) | sigmask (SIGHUP));
     Debug ("signals blocked, mask was 0x%x\n", omask);
-# endif
+#endif
     if (!ChildReady && !Rescan)
-# ifndef X_NOT_POSIX
+#ifndef X_NOT_POSIX
 	sigsuspend(&omask);
-# else
+#else
 	sigpause (omask);
-# endif
+#endif
     ChildReady = 0;
-# ifndef X_NOT_POSIX
+#ifndef X_NOT_POSIX
     sigprocmask(SIG_SETMASK, &omask, (sigset_t *)NULL);
-# else
+#else
     sigsetmask (omask);
-# endif
-    while ((pid = waitpid (-1, &status, WNOHANG)) > 0)
 #endif
+    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));
-- 
1.9.1



More information about the xorg-devel mailing list