diff --git a/LEGO1/mxcriticalsection.cpp b/LEGO1/mxcriticalsection.cpp index 9b25c8f9..b94c021c 100644 --- a/LEGO1/mxcriticalsection.cpp +++ b/LEGO1/mxcriticalsection.cpp @@ -1,73 +1,73 @@ -#include "mxcriticalsection.h" - -#include - -int g_useMutex = 0; - -MxCriticalSection::MxCriticalSection() -{ - HANDLE mutex; - - if (g_useMutex != 0) - { - mutex = CreateMutexA(NULL, FALSE, NULL); - this->m_mutex = mutex; - return; - } - - InitializeCriticalSection(&this->m_criticalSection); - this->m_mutex = NULL; -} - -MxCriticalSection::~MxCriticalSection() -{ - if (this->m_mutex != NULL) - { - CloseHandle(this->m_mutex); - return; - } - - DeleteCriticalSection(&this->m_criticalSection); -} - -void MxCriticalSection::SetDoMutex() -{ - g_useMutex = 1; -} - -void MxCriticalSection::Enter() -{ - DWORD result; - FILE *file; - - if (this->m_mutex != NULL) - { - result = WaitForSingleObject(this->m_mutex, 5000); - if (result == WAIT_FAILED) - { - file = fopen("C:\\DEADLOCK.TXT", "a"); - if (file != NULL) - { - fprintf(file, "mutex timeout occurred!\n"); - fclose(file); - } - - abort(); - } - } - else - { - EnterCriticalSection(&this->m_criticalSection); - } -} - -void MxCriticalSection::Leave() -{ - if (this->m_mutex != NULL) - { - ReleaseMutex(this->m_mutex); - return; - } - - LeaveCriticalSection(&this->m_criticalSection); +#include "mxcriticalsection.h" + +#include + +int g_useMutex = 0; + +MxCriticalSection::MxCriticalSection() +{ + HANDLE mutex; + + if (g_useMutex != 0) + { + mutex = CreateMutexA(NULL, FALSE, NULL); + this->m_mutex = mutex; + return; + } + + InitializeCriticalSection(&this->m_criticalSection); + this->m_mutex = NULL; +} + +MxCriticalSection::~MxCriticalSection() +{ + if (this->m_mutex != NULL) + { + CloseHandle(this->m_mutex); + return; + } + + DeleteCriticalSection(&this->m_criticalSection); +} + +void MxCriticalSection::SetDoMutex() +{ + g_useMutex = 1; +} + +void MxCriticalSection::Enter() +{ + DWORD result; + FILE *file; + + if (this->m_mutex != NULL) + { + result = WaitForSingleObject(this->m_mutex, 5000); + if (result == WAIT_FAILED) + { + file = fopen("C:\\DEADLOCK.TXT", "a"); + if (file != NULL) + { + fprintf(file, "mutex timeout occurred!\n"); + fclose(file); + } + + abort(); + } + } + else + { + EnterCriticalSection(&this->m_criticalSection); + } +} + +void MxCriticalSection::Leave() +{ + if (this->m_mutex != NULL) + { + ReleaseMutex(this->m_mutex); + return; + } + + LeaveCriticalSection(&this->m_criticalSection); } \ No newline at end of file diff --git a/LEGO1/mxcriticalsection.h b/LEGO1/mxcriticalsection.h index 4c8d43d0..bd84babb 100644 --- a/LEGO1/mxcriticalsection.h +++ b/LEGO1/mxcriticalsection.h @@ -1,20 +1,20 @@ -#ifndef MXCRITICALSECTION_H -#define MXCRITICALSECTION_H - -#include - -class MxCriticalSection -{ -public: - __declspec(dllexport) MxCriticalSection(); - __declspec(dllexport) ~MxCriticalSection(); - __declspec(dllexport) static void SetDoMutex(); - void Enter(); - void Leave(); - -private: - CRITICAL_SECTION m_criticalSection; - HANDLE m_mutex; -}; - -#endif // MXCRITICALSECTION_H +#ifndef MXCRITICALSECTION_H +#define MXCRITICALSECTION_H + +#include + +class MxCriticalSection +{ +public: + __declspec(dllexport) MxCriticalSection(); + __declspec(dllexport) ~MxCriticalSection(); + __declspec(dllexport) static void SetDoMutex(); + void Enter(); + void Leave(); + +private: + CRITICAL_SECTION m_criticalSection; + HANDLE m_mutex; +}; + +#endif // MXCRITICALSECTION_H