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:

Classes

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

Macros

#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();
 

Variables

R__EXTERN TVirtualMutexgGlobalMutex
 

Macro Definition Documentation

◆ R__LOCKGUARD

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

Definition at line 106 of file TVirtualMutex.h.

◆ R__LOCKGUARD2

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

Definition at line 108 of file TVirtualMutex.h.

◆ R__LOCKGUARD_IMT

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

Definition at line 113 of file TVirtualMutex.h.

◆ R__LOCKGUARD_IMT2

#define R__LOCKGUARD_IMT2 (   mutex)
Value:
gGlobalMutex->Lock(); \
if (!mutex) \
mutex = gGlobalMutex->Factory(kTRUE); \
gGlobalMutex->UnLock(); \
} \
R__LOCKGUARD_IMT(mutex)
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.

◆ R__LOCKGUARD_NAMED

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

Definition at line 107 of file TVirtualMutex.h.

◆ R__LOCKGUARD_UNLOCK

#define R__LOCKGUARD_UNLOCK (   name)    { }

Definition at line 109 of file TVirtualMutex.h.

◆ R__RWLOCK_ACQUIRE_READ

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

Definition at line 128 of file TVirtualMutex.h.

◆ R__RWLOCK_ACQUIRE_WRITE

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

Definition at line 130 of file TVirtualMutex.h.

◆ R__RWLOCK_RELEASE_READ

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

Definition at line 129 of file TVirtualMutex.h.

◆ R__RWLOCK_RELEASE_WRITE

#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.