summaryrefslogtreecommitdiffstats
path: root/src/OSSupport/CriticalSection.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-10-20 22:26:18 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-10-20 22:26:18 +0200
commita324333c11c7cc981104ae0483a0203c34e0e991 (patch)
tree4d6d0007051602b7b9133aafadfcb8ebf70709a7 /src/OSSupport/CriticalSection.cpp
parentMerge branch 'master' of https://github.com/mc-server/MCServer (diff)
downloadcuberite-a324333c11c7cc981104ae0483a0203c34e0e991.tar
cuberite-a324333c11c7cc981104ae0483a0203c34e0e991.tar.gz
cuberite-a324333c11c7cc981104ae0483a0203c34e0e991.tar.bz2
cuberite-a324333c11c7cc981104ae0483a0203c34e0e991.tar.lz
cuberite-a324333c11c7cc981104ae0483a0203c34e0e991.tar.xz
cuberite-a324333c11c7cc981104ae0483a0203c34e0e991.tar.zst
cuberite-a324333c11c7cc981104ae0483a0203c34e0e991.zip
Diffstat (limited to '')
-rw-r--r--src/OSSupport/CriticalSection.cpp48
1 files changed, 5 insertions, 43 deletions
diff --git a/src/OSSupport/CriticalSection.cpp b/src/OSSupport/CriticalSection.cpp
index 3e8e7498d..13a3e4d9f 100644
--- a/src/OSSupport/CriticalSection.cpp
+++ b/src/OSSupport/CriticalSection.cpp
@@ -1,6 +1,5 @@
#include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules
-#include "IsThread.h"
@@ -9,41 +8,12 @@
////////////////////////////////////////////////////////////////////////////////
// cCriticalSection:
+#ifdef _DEBUG
cCriticalSection::cCriticalSection()
{
- #ifdef _WIN32
- InitializeCriticalSection(&m_CriticalSection);
- #else
- pthread_mutexattr_init(&m_Attributes);
- pthread_mutexattr_settype(&m_Attributes, PTHREAD_MUTEX_RECURSIVE);
-
- if (pthread_mutex_init(&m_CriticalSection, &m_Attributes) != 0)
- {
- LOGERROR("Could not initialize Critical Section!");
- }
- #endif
-
- #ifdef _DEBUG
- m_IsLocked = 0;
- #endif // _DEBUG
-}
-
-
-
-
-
-cCriticalSection::~cCriticalSection()
-{
- #ifdef _WIN32
- DeleteCriticalSection(&m_CriticalSection);
- #else
- if (pthread_mutex_destroy(&m_CriticalSection) != 0)
- {
- LOGWARNING("Could not destroy Critical Section!");
- }
- pthread_mutexattr_destroy(&m_Attributes);
- #endif
+ m_IsLocked = 0;
}
+#endif // _DEBUG
@@ -51,11 +21,7 @@ cCriticalSection::~cCriticalSection()
void cCriticalSection::Lock()
{
- #ifdef _WIN32
- EnterCriticalSection(&m_CriticalSection);
- #else
- pthread_mutex_lock(&m_CriticalSection);
- #endif
+ m_Mutex.lock();
#ifdef _DEBUG
m_IsLocked += 1;
@@ -74,11 +40,7 @@ void cCriticalSection::Unlock()
m_IsLocked -= 1;
#endif // _DEBUG
- #ifdef _WIN32
- LeaveCriticalSection(&m_CriticalSection);
- #else
- pthread_mutex_unlock(&m_CriticalSection);
- #endif
+ m_Mutex.unlock();
}