mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +00:00
feat(thread): add CCritSect
This commit is contained in:
parent
368c2f16c2
commit
a500c34d45
4 changed files with 90 additions and 0 deletions
41
storm/thread/CCritSect.cpp
Normal file
41
storm/thread/CCritSect.cpp
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#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
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue