7 #ifndef MSynch_CriticialSection_h 8 #define MSynch_CriticialSection_h 44 mrCriticalSection(irCriticalSection),
47 mrCriticalSection.Lock();
61 mrCriticalSection.Lock();
68 mrCriticalSection.Unlock();
84 virtual void Delete() throw() = 0;
95 virtual
void Lock() = 0;
98 virtual
void Unlock() throw() = 0;
130 #endif // MSynch_CriticialSection_h
virtual void Unlock()=0
leave the critical section, any waiting thread may enter it now
DLL_SYNCH_EXIM CriticalSection * CreateCriticalSection(EnumDSSLockStackCategory iLockStackCategory=DssLkStkCatNotNestingLock)
void Unlock()
Definition: CriticalSection.h:65
#define _ASSERTE(x)
Definition: Asserte.h:40
MBase::StrongPtr< CriticalSection, MBase::DeleteOperatorGeneric< CriticalSection > > Ptr
Definition: CriticalSection.h:28
Definition: ReferenceCountedImpl.h:18
DLL_SYNCH_EXIM CriticalSection * GetBootstrapCriticalSection()
MBase::ReturnPtr< CriticalSection, MBase::DeleteOperatorGeneric< CriticalSection > > ReturnPtr
Definition: CriticalSection.h:29
virtual void Exception_unsafe_Unlock__which_should_NOT_be_used_because_of_imminent_deadlocks__Use_SmartLock_instead()=0
virtual void SetLockCategory(EnumDSSLockStackCategory iLockStackCategory)=0
SetLockCategory for "late category binding".
#define DLL_SYNCH_EXIM
Definition: Synch.h:17
virtual void Exception_unsafe_Lock__which_should_NOT_be_used_because_of_imminent_deadlocks__Use_SmartLock_instead()=0
SmartLock(CriticalSection &irCriticalSection)
Definition: CriticalSection.h:43
~SmartLock()
Definition: CriticalSection.h:50
Definition: LockCategories.h:35
Definition: StrongPtr.h:50
CriticalSection allows only one thread at a time to pass.
Definition: CriticalSection.h:24
SmartLock interface.
Definition: CriticalSection.h:37
EnumDSSLockStackCategory
Definition: LockCategories.h:32
Definition: ReturnPtr.h:22
void Lock()
Definition: CriticalSection.h:58