Logo ROOT  
Reference Guide
ROOT::Internal::RecurseCounts Struct Reference

Definition at line 88 of file TReentrantRWLock.hxx.

Public Types

using Hint_t = TVirtualRWMutex::Hint_t
 
using local_t = std::thread::id
 
using ReaderColl_t = std::unordered_map< std::thread::id, size_t >
 

Public Member Functions

Hint_tDecrementReadCount (local_t &local)
 
template<typename MutexT >
Hint_tDecrementReadCount (local_t &local, MutexT &mutex)
 
void DecrementWriteCount ()
 
local_t GetLocal () const
 
size_t & GetLocalReadersCount (local_t &local)
 
Hint_tIncrementReadCount (local_t &local)
 
template<typename MutexT >
Hint_tIncrementReadCount (local_t &local, MutexT &mutex)
 
bool IsCurrentWriter (local_t &local) const
 
bool IsNotCurrentWriter (local_t &local) const
 
void ResetIsWriter (local_t &)
 
void ResetReadCount (local_t &local, int newvalue)
 
void SetIsWriter (local_t &local)
 

Public Attributes

ReaderColl_t fReadersCount
 ! Set of reader thread ids More...
 
size_t fWriteRecurse
 ! Number of re-entry in the lock by the same thread. More...
 
std::thread::id fWriterThread
 ! Holder of the write lock More...
 

#include <ROOT/TReentrantRWLock.hxx>

Member Typedef Documentation

◆ Hint_t

using ROOT::Internal::RecurseCounts::Hint_t = TVirtualRWMutex::Hint_t

Definition at line 89 of file TReentrantRWLock.hxx.

◆ local_t

◆ ReaderColl_t

using ROOT::Internal::RecurseCounts::ReaderColl_t = std::unordered_map<std::thread::id, size_t>

Definition at line 90 of file TReentrantRWLock.hxx.

Member Function Documentation

◆ DecrementReadCount() [1/2]

Hint_t * ROOT::Internal::RecurseCounts::DecrementReadCount ( local_t local)
inline

Definition at line 113 of file TReentrantRWLock.hxx.

◆ DecrementReadCount() [2/2]

template<typename MutexT >
Hint_t * ROOT::Internal::RecurseCounts::DecrementReadCount ( local_t local,
MutexT &  mutex 
)
inline

Definition at line 120 of file TReentrantRWLock.hxx.

◆ DecrementWriteCount()

void ROOT::Internal::RecurseCounts::DecrementWriteCount ( )
inline

Definition at line 142 of file TReentrantRWLock.hxx.

◆ GetLocal()

local_t ROOT::Internal::RecurseCounts::GetLocal ( ) const
inline

Definition at line 98 of file TReentrantRWLock.hxx.

◆ GetLocalReadersCount()

size_t & ROOT::Internal::RecurseCounts::GetLocalReadersCount ( local_t local)
inline

Definition at line 146 of file TReentrantRWLock.hxx.

◆ IncrementReadCount() [1/2]

Hint_t * ROOT::Internal::RecurseCounts::IncrementReadCount ( local_t local)
inline

Definition at line 100 of file TReentrantRWLock.hxx.

◆ IncrementReadCount() [2/2]

template<typename MutexT >
Hint_t * ROOT::Internal::RecurseCounts::IncrementReadCount ( local_t local,
MutexT &  mutex 
)
inline

Definition at line 107 of file TReentrantRWLock.hxx.

◆ IsCurrentWriter()

bool ROOT::Internal::RecurseCounts::IsCurrentWriter ( local_t local) const
inline

Definition at line 130 of file TReentrantRWLock.hxx.

◆ IsNotCurrentWriter()

bool ROOT::Internal::RecurseCounts::IsNotCurrentWriter ( local_t local) const
inline

Definition at line 131 of file TReentrantRWLock.hxx.

◆ ResetIsWriter()

void ROOT::Internal::RecurseCounts::ResetIsWriter ( local_t )
inline

Definition at line 144 of file TReentrantRWLock.hxx.

◆ ResetReadCount()

void ROOT::Internal::RecurseCounts::ResetReadCount ( local_t local,
int  newvalue 
)
inline

Definition at line 126 of file TReentrantRWLock.hxx.

◆ SetIsWriter()

void ROOT::Internal::RecurseCounts::SetIsWriter ( local_t local)
inline

Definition at line 133 of file TReentrantRWLock.hxx.

Member Data Documentation

◆ fReadersCount

ReaderColl_t ROOT::Internal::RecurseCounts::fReadersCount

! Set of reader thread ids

Definition at line 94 of file TReentrantRWLock.hxx.

◆ fWriteRecurse

size_t ROOT::Internal::RecurseCounts::fWriteRecurse

! Number of re-entry in the lock by the same thread.

Definition at line 91 of file TReentrantRWLock.hxx.

◆ fWriterThread

std::thread::id ROOT::Internal::RecurseCounts::fWriterThread

! Holder of the write lock

Definition at line 93 of file TReentrantRWLock.hxx.

Collaboration diagram for ROOT::Internal::RecurseCounts:
[legend]

The documentation for this struct was generated from the following file: