Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "stock.h"
#pragma hdrstop
#include "dbutil.h"
///////
// Critical section helper stuff
//
#ifdef DEBUG
UINT g_CriticalSectionCount = 0; DWORD g_CriticalSectionOwner = 0; #ifdef STACKBACKTRACE
DBstkback g_CriticalSectionLastCall[4] = { 0 }; #endif
void Dll_EnterCriticalSection(CRITICAL_SECTION * pcsDll) { #ifdef STACKBACKTRACE
int var0; // *must* be 1st on frame
#endif
EnterCriticalSection(pcsDll); if (g_CriticalSectionCount++ == 0) { g_CriticalSectionOwner = GetCurrentThreadId(); #ifdef STACKBACKTRACE
int fp = (int) (1 + (int *)&var0); DBGetStackBack(&fp, g_CriticalSectionLastCall, ARRAYSIZE(g_CriticalSectionLastCall)); #endif
} }
void Dll_LeaveCriticalSection(CRITICAL_SECTION * pcsDll) { if (--g_CriticalSectionCount == 0) g_CriticalSectionOwner = 0; LeaveCriticalSection(pcsDll); } #endif
|