[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