From: Chase Douglas <[email protected]> This will be used for checking for proper logging when in signal context.
Signed-off-by: Chase Douglas <[email protected]> Reviewed-by: Peter Hutterer <[email protected]> --- hw/xfree86/os-support/shared/sigio.c | 4 ++++ include/globals.h | 3 +++ os/utils.c | 2 ++ 3 files changed, 9 insertions(+) diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c index 12ae8a4..231d6c0 100644 --- a/hw/xfree86/os-support/shared/sigio.c +++ b/hw/xfree86/os-support/shared/sigio.c @@ -99,6 +99,8 @@ xf86SIGIO(int sig) int save_errno = errno; /* do not clobber the global errno */ int r; + inSignalContext = TRUE; + ready = xf86SigIOMask; to.tv_sec = 0; to.tv_usec = 0; @@ -114,6 +116,8 @@ xf86SIGIO(int sig) } /* restore global errno */ errno = save_errno; + + inSignalContext = FALSE; } static int diff --git a/include/globals.h b/include/globals.h index 8076955..6d3f3d7 100644 --- a/include/globals.h +++ b/include/globals.h @@ -2,6 +2,8 @@ #ifndef _XSERV_GLOBAL_H_ #define _XSERV_GLOBAL_H_ +#include <signal.h> + #include "window.h" /* for WindowPtr */ /* Global X server variables that are visible to mi, dix, os, and ddx */ @@ -23,6 +25,7 @@ extern _X_EXPORT int GrabInProgress; extern _X_EXPORT Bool noTestExtensions; extern _X_EXPORT char *SeatId; extern _X_EXPORT char *ConnectionInfo; +extern _X_EXPORT sig_atomic_t inSignalContext; #ifdef DPMSExtension extern _X_EXPORT CARD32 DPMSStandbyTime; diff --git a/os/utils.c b/os/utils.c index 3a1ef93..2f07548 100644 --- a/os/utils.c +++ b/os/utils.c @@ -204,6 +204,8 @@ int auditTrailLevel = 1; char *SeatId = NULL; +sig_atomic_t inSignalContext = FALSE; + #if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED) #define HAS_SAVED_IDS_AND_SETEUID #endif -- 1.7.10.2 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
