From 0e937cb11bfd1eabd573e2fb4f1ab452213ba9a8 Mon Sep 17 00:00:00 2001 From: David Reveman Date: Tue, 11 Nov 2008 17:00:26 -0500 Subject: [PATCH] Replace HAVE_SIGPROCMASK with SIG_BLOCK and make sure display can be re-launched at server reset. --- hw/dmx/dmxlaunch.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/hw/dmx/dmxlaunch.c b/hw/dmx/dmxlaunch.c index b10db894a..4cab11826 100644 --- a/hw/dmx/dmxlaunch.c +++ b/hw/dmx/dmxlaunch.c @@ -135,6 +135,8 @@ dmxAbortDisplay (void) if (xbeAuth) unlink (xbeAuth); + + xbePid = 0; } static void @@ -148,13 +150,13 @@ static void sigUsr1Jump (int sig) { -#ifdef HAVE_SIGPROCMASK +#ifdef SIG_BLOCK sigset_t set; #endif signal (sig, sigUsr1Waiting); -#ifdef HAVE_SIGPROCMASK +#ifdef SIG_BLOCK sigemptyset (&set); sigaddset (&set, SIGUSR1); sigprocmask (SIG_UNBLOCK, &set, NULL); @@ -285,7 +287,16 @@ dmxLaunchDisplay (int argc, char *argv[], int index, char *vt) int mask; if (xbePid) - return TRUE; + return FALSE; + + if (xbeArgv) + { + free (xbeArgv); + xbeArgv = NULL; + nXbeArgv = 0; + } + + receivedUsr1 = 0; strcpy (xbeAuthBuf, xbeAuthTempl); mask = umask (0077);