mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +00:00
42 lines
937 B
C++
42 lines
937 B
C++
|
|
#include "storm/thread/CCritSect.hpp"
|
||
|
|
|
||
|
|
CCritSect::CCritSect() {
|
||
|
|
#if defined(WHOA_SYSTEM_WIN)
|
||
|
|
InitializeCriticalSection(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||
|
|
pthread_mutex_init(&this->m_critsect, nullptr);
|
||
|
|
#endif
|
||
|
|
}
|
||
|
|
|
||
|
|
CCritSect::~CCritSect() {
|
||
|
|
#if defined(WHOA_SYSTEM_WIN)
|
||
|
|
DeleteCriticalSection(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||
|
|
pthread_mutex_destroy(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
}
|
||
|
|
|
||
|
|
void CCritSect::Enter() {
|
||
|
|
#if defined(WHOA_SYSTEM_WIN)
|
||
|
|
EnterCriticalSection(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||
|
|
pthread_mutex_lock(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
}
|
||
|
|
|
||
|
|
void CCritSect::Leave() {
|
||
|
|
#if defined(WHOA_SYSTEM_WIN)
|
||
|
|
LeaveCriticalSection(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||
|
|
pthread_mutex_unlock(&this->m_critsect);
|
||
|
|
#endif
|
||
|
|
}
|