mirror of
https://github.com/reactos/reactos.git
synced 2026-07-07 10:40:20 +08:00
made SetErrorMode() thread-safe
svn path=/trunk/; revision=13134
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user