diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-09-23 23:23:33 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-09-23 23:23:33 +0200 |
commit | 7abb5f7604bb9a0a716e89f3b27e330b016a38b9 (patch) | |
tree | 7ccaea302b953c239a0d60548b6f7bcaf72e6527 /source/cCriticalSection.h | |
parent | Source files cleanup: Removed unused cBlockToPickup (diff) | |
download | cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.gz cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.bz2 cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.lz cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.xz cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.tar.zst cuberite-7abb5f7604bb9a0a716e89f3b27e330b016a38b9.zip |
Diffstat (limited to 'source/cCriticalSection.h')
-rw-r--r-- | source/cCriticalSection.h | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/source/cCriticalSection.h b/source/cCriticalSection.h deleted file mode 100644 index 9852a2e6c..000000000 --- a/source/cCriticalSection.h +++ /dev/null @@ -1,80 +0,0 @@ - -#pragma once - - - - - -class cCriticalSection -{ -public: - cCriticalSection(void); - ~cCriticalSection(); - - void Lock(void); - void Unlock(void); - - #ifdef _DEBUG - bool IsLocked(void); - bool IsLockedByCurrentThread(void); - #endif // _DEBUG - -private: - #ifdef _DEBUG - bool m_IsLocked; - unsigned long m_OwningThreadID; - #endif // _DEBUG - - #ifdef _WIN32 - CRITICAL_SECTION m_CriticalSection; - #else // _WIN32 - void* m_CriticalSectionPtr ALIGN_8; // Pointer to a CRITICAL_SECTION object - void* m_Attributes ALIGN_8; - #endif // else _WIN32 -} ALIGN_8; - - - - -/// RAII for cCriticalSection - locks the CS on creation, unlocks on destruction -class cCSLock -{ - cCriticalSection * m_CS; - - // Unlike a cCriticalSection, this object should be used from a single thread, therefore access to m_IsLocked is not threadsafe - // In Windows, it is an error to call cCriticalSection::Unlock() multiple times if the lock is not held, - // therefore we need to check this value whether we are locked or not. - bool m_IsLocked; - -public: - cCSLock(cCriticalSection * a_CS); - cCSLock(cCriticalSection & a_CS); - ~cCSLock(); - - // Temporarily unlock or re-lock: - void Lock(void); - void Unlock(void); - -private: - DISALLOW_COPY_AND_ASSIGN(cCSLock); -} ; - - - - - -/// Temporary RAII unlock for a cCSLock. Useful for unlock-wait-relock scenarios -class cCSUnlock -{ - cCSLock & m_Lock; -public: - cCSUnlock(cCSLock & a_Lock); - ~cCSUnlock(); - -private: - DISALLOW_COPY_AND_ASSIGN(cCSUnlock); -} ; - - - - |