Logo ROOT  
Reference Guide
TVirtualMutex.h File Reference
#include "TObject.h"
#include <memory>
Include dependency graph for TVirtualMutex.h:
This graph shows which files directly or indirectly include this file:


class  TLockGuard
class  TVirtualMutex
 This class implements a mutex interface. More...


#define R__LOCKGUARD(mutex)   (void)(mutex); { }
#define R__LOCKGUARD2(mutex)   (void)(mutex); { }
#define R__LOCKGUARD_IMT(mutex)   R__LOCKGUARD(ROOT::Internal::IsParBranchProcessingEnabled() ? mutex : nullptr)
#define R__LOCKGUARD_IMT2(mutex)
#define R__LOCKGUARD_NAMED(name, mutex)   (void)(mutex); { }
#define R__LOCKGUARD_UNLOCK(name)   { }
#define R__RWLOCK_ACQUIRE_READ(rwlock)   if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.ReadLock();
#define R__RWLOCK_ACQUIRE_WRITE(rwlock)   if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.WriteLock();
#define R__RWLOCK_RELEASE_READ(rwlock)   if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.ReadUnLock();
#define R__RWLOCK_RELEASE_WRITE(rwlock)   if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.WriteUnLock();


R__EXTERN TVirtualMutexgGlobalMutex

Macro Definition Documentation


#define R__LOCKGUARD (   mutex)    (void)(mutex); { }

Definition at line 106 of file TVirtualMutex.h.


#define R__LOCKGUARD2 (   mutex)    (void)(mutex); { }

Definition at line 108 of file TVirtualMutex.h.


#define R__LOCKGUARD_IMT (   mutex)    R__LOCKGUARD(ROOT::Internal::IsParBranchProcessingEnabled() ? mutex : nullptr)

Definition at line 113 of file TVirtualMutex.h.


#define R__LOCKGUARD_IMT2 (   mutex)
gGlobalMutex->Lock(); \
if (!mutex) \
mutex = gGlobalMutex->Factory(kTRUE); \
gGlobalMutex->UnLock(); \
} \
const Bool_t kTRUE
Definition: RtypesCore.h:87
R__EXTERN TVirtualMutex * gGlobalMutex
Definition: TVirtualMutex.h:29
virtual Int_t UnLock()=0
virtual TVirtualMutex * Factory(Bool_t=kFALSE)=0
Bool_t IsParBranchProcessingEnabled()
Returns true if parallel branch processing is enabled.
Definition: TROOT.cxx:446

Definition at line 114 of file TVirtualMutex.h.


#define R__LOCKGUARD_NAMED (   name,
)    (void)(mutex); { }

Definition at line 107 of file TVirtualMutex.h.


#define R__LOCKGUARD_UNLOCK (   name)    { }

Definition at line 109 of file TVirtualMutex.h.


#define R__RWLOCK_ACQUIRE_READ (   rwlock)    if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.ReadLock();

Definition at line 128 of file TVirtualMutex.h.


#define R__RWLOCK_ACQUIRE_WRITE (   rwlock)    if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.WriteLock();

Definition at line 130 of file TVirtualMutex.h.


#define R__RWLOCK_RELEASE_READ (   rwlock)    if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.ReadUnLock();

Definition at line 129 of file TVirtualMutex.h.


#define R__RWLOCK_RELEASE_WRITE (   rwlock)    if (ROOT::Internal::IsParTreeProcessingEnabled()) rwlock.WriteUnLock();

Definition at line 131 of file TVirtualMutex.h.

Variable Documentation

◆ gGlobalMutex

R__EXTERN TVirtualMutex* gGlobalMutex

Definition at line 32 of file TVirtualMutex.h.