7 #ifndef MSynch_CriticalSectionImpl_h 8 #define MSynch_CriticalSectionImpl_h 10 #include "PDCHeader/PDCvector" 12 #include "../LockCategories.h" 13 #include "../CriticalSection.h" 16 #include "../ProtectedSource/InprocessRecursiveMutex.h" 38 virtual void Unlock()
throw();
47 bool mbLockHasBeenCalled;
48 bool mbCategoryHasBeenChanged;
52 unsigned int mnLastOccupyingThreadID;
55 unsigned int mnOccupiedCount;
64 #endif // MSynch_CriticalSectionImpl_h void InitState(EnumDSSLockStackCategory iLockCategory)
Definition: CriticalSectionImpl.h:20
Definition: InprocessRecursiveMutex.h:25
static void ReleaseCS(CriticalSectionImpl *cs)
Definition: ReferenceCountedImpl.h:18
Definition: SynchObject.h:16
CriticalSectionImpl(EnumDSSLockStackCategory iLockCategory)
virtual void Exception_unsafe_Lock__which_should_NOT_be_used_because_of_imminent_deadlocks__Use_SmartLock_instead()
void SetLockCategory(EnumDSSLockStackCategory iLockCatagory)
SetLockCategory for "late category binding".
CriticalSection allows only one thread at a time to pass.
Definition: CriticalSection.h:24
virtual void Exception_unsafe_Unlock__which_should_NOT_be_used_because_of_imminent_deadlocks__Use_SmartLock_instead()
static CriticalSectionImpl * GetCS(EnumDSSLockStackCategory iLockCategory)
virtual void Unlock()
leave the critical section, any waiting thread may enter it now
EnumDSSLockStackCategory
Definition: LockCategories.h:32