12#ifndef ROOT_TVirtualMutex
13#define ROOT_TVirtualMutex
95#define R__LOCKGUARD(mutex) TLockGuard _R__UNIQUE_(R__guard)(mutex)
96#define R__LOCKGUARD2(mutex) \
97 if (gGlobalMutex && !mutex) { \
98 gGlobalMutex->Lock(); \
100 mutex = gGlobalMutex->Factory(kTRUE); \
101 gGlobalMutex->UnLock(); \
104#define R__LOCKGUARD_NAMED(name,mutex) TLockGuard _NAME2_(R__guard,name)(mutex)
105#define R__LOCKGUARD_UNLOCK(name) _NAME2_(R__guard,name).UnLock()
108#define R__LOCKGUARD_IMT(mutex) R__LOCKGUARD(ROOT::Internal::IsParBranchProcessingEnabled() ? mutex : nullptr)
109#define R__LOCKGUARD_IMT2(mutex) \
110 if (gGlobalMutex && !mutex && ROOT::Internal::IsParBranchProcessingEnabled()) { \
111 gGlobalMutex->Lock(); \
113 mutex = gGlobalMutex->Factory(kTRUE); \
114 gGlobalMutex->UnLock(); \
116 R__LOCKGUARD_IMT(mutex)
118#define R__LOCKGUARD_IMT(mutex) { }
119#define R__LOCKGUARD_IMT2(mutex) { }
#define ClassDef(name, id)
#define ClassDefNV(name, id)
R__EXTERN TVirtualMutex * gGlobalMutex
TLockGuard & operator=(const TLockGuard &)=delete
TLockGuard(const TLockGuard &)=delete
TLockGuard(TVirtualMutex *mutex)
This class implements a mutex interface.
TVirtualMutex(Bool_t=kFALSE)
virtual Int_t CleanUp()=0
virtual Int_t TryLock()=0
virtual TVirtualMutex * Factory(Bool_t=kFALSE)=0