22 InitializeCriticalSection(&m_criticalSection);
30 if (m_mutex !=
NULL) {
34 DeleteCriticalSection(&m_criticalSection);
45 if (m_mutex !=
NULL) {
46 result = WaitForSingleObject(m_mutex, 5000);
47 if (result == WAIT_FAILED) {
48 file = fopen(
"C:\\DEADLOCK.TXT",
"a");
50 fprintf(file,
"mutex timeout occurred!\n");
58 EnterCriticalSection(&m_criticalSection);
65 if (m_mutex !=
NULL) {
66 ReleaseMutex(m_mutex);
69 LeaveCriticalSection(&m_criticalSection);
[AI] Provides a critical section object for mutual exclusion with optional use of OS mutex.
static void SetDoMutex()
[AI] Globally enforces the use of mutexes for all subsequent MxCriticalSection allocation.
void Enter()
[AI] Acquires/gains entry to the critical section or mutex, blocking if not available.
~MxCriticalSection()
[AI] Destroys the critical section object.
void Leave()
[AI] Releases/leaves the critical section or mutex.
typedef DWORD(FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper
#define DECOMP_SIZE_ASSERT(T, S)
#define NULL
[AI] Null pointer value (C/C++ semantics).