From c0ff13e571b27b72ce9cd4e76bbbace1ac76c3ca Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Wed, 19 Jan 2005 19:14:56 +0000 Subject: [PATCH] made SetErrorMode() thread-safe svn path=/trunk/; revision=13134 --- reactos/lib/kernel32/except/except.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/reactos/lib/kernel32/except/except.c b/reactos/lib/kernel32/except/except.c index c63d06ab3aa..5350e830c3b 100644 --- a/reactos/lib/kernel32/except/except.c +++ b/reactos/lib/kernel32/except/except.c @@ -15,25 +15,18 @@ #define NDEBUG #include "../include/debug.h" -UINT GlobalErrMode = 0; +UINT GlobalErrorMode = 0; LPTOP_LEVEL_EXCEPTION_FILTER GlobalTopLevelExceptionFilter = UnhandledExceptionFilter; -UINT GetErrorMode(void) -{ - return GlobalErrMode; -} - /* * @implemented */ UINT STDCALL -SetErrorMode( UINT uMode ) +SetErrorMode(UINT uMode) { - UINT OldErrMode = GetErrorMode(); - GlobalErrMode = uMode; - return OldErrMode; + return (UINT)InterlockedExchange((LONG*)&GlobalErrorMode, (LONG)uMode); } @@ -121,7 +114,7 @@ UnhandledExceptionFilter(struct _EXCEPTION_POINTERS *ExceptionInfo) return EXCEPTION_CONTINUE_SEARCH; } - if ((GetErrorMode() & SEM_NOGPFAULTERRORBOX) == 0) + if ((GlobalErrorMode & SEM_NOGPFAULTERRORBOX) == 0) { #ifdef _X86_ PULONG Frame;