#include <InternalOnline.h>
Definition at line 26 of file InternalOnline.h.
◆ hashPair
◆ InternalConstItr
◆ InternalOnline()
◆ ~InternalOnline()
virtual EventContainers::InternalOnline::~InternalOnline |
( |
| ) |
|
|
virtualdefault |
◆ addLock()
Implements EventContainers::I_InternalIDC.
Definition at line 143 of file InternalOnline.cxx.
146 throw std::runtime_error(
"IDC WARNING Deletion shouldn't occur in addLock paradigm");
148 m_mask[hashId] =
true;
149 m_waitNeeded.store(
true, std::memory_order_relaxed);
150 return StatusCode::SUCCESS;
◆ cbegin()
◆ cend()
◆ cleanUp()
◆ destructor()
void InternalOnline::destructor |
( |
deleter_f * |
| ) |
|
|
overridevirtualnoexcept |
◆ fetchOrCreate() [1/2]
◆ fetchOrCreate() [2/2]
◆ findIndexPtr()
◆ fullSize()
virtual size_t EventContainers::InternalOnline::fullSize |
( |
| ) |
const |
|
inlineoverridevirtualnoexcept |
◆ getAllCurrentHashes()
std::vector< IdentifierHash > InternalOnline::getAllCurrentHashes |
( |
| ) |
const |
|
overridevirtual |
◆ getAllHashPtrPair()
◆ indexFind()
◆ insert()
◆ numberOfCollections()
size_t InternalOnline::numberOfCollections |
( |
| ) |
const |
|
overridevirtual |
◆ removeCollection()
◆ resetMask()
void InternalOnline::resetMask |
( |
| ) |
|
Definition at line 106 of file InternalOnline.cxx.
107 if(m_waitNeeded.load(std::memory_order_relaxed))
wait();
110 m_waitNeeded.store(
true, std::memory_order_relaxed);
◆ tryAddFromCache() [1/2]
◆ tryAddFromCache() [2/2]
Implements EventContainers::I_InternalIDC.
Definition at line 66 of file InternalOnline.cxx.
69 if(!m_waitlist.empty()) m_waitNeeded.store(
true, std::memory_order_relaxed);
72 m_mask[hashId] =
true;
73 m_waitNeeded.store(
true, std::memory_order_relaxed);
◆ wait()
void InternalOnline::wait |
( |
| ) |
const |
|
overridevirtual |
Implements EventContainers::I_InternalIDC.
Definition at line 44 of file InternalOnline.cxx.
46 std::scoped_lock lock (m_waitMutex);
47 if(m_waitNeeded.load(std::memory_order_acquire) ==
false)
return;
50 while(!m_waitlist.empty()) {
51 IdentifierHash
hash = m_waitlist.back();
53 const void*
ptr = cacheLink->waitFor(
hash);
54 if(
ptr == ABORTstate) {
57 m_waitlist.pop_back();
60 for(
size_t i =0;
i<m_mask.size();
i++){
63 m_waitNeeded.store(
false, std::memory_order_release);
◆ ATLAS_THREAD_SAFE [1/5]
std::vector< IdentifierHash > m_waitlist EventContainers::InternalOnline::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [2/5]
◆ ATLAS_THREAD_SAFE [3/5]
std::mutex m_waitMutex EventContainers::InternalOnline::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [4/5]
std::vector<bool> m_mask EventContainers::InternalOnline::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ ATLAS_THREAD_SAFE [5/5]
std::atomic<bool> m_waitNeeded EventContainers::InternalOnline::ATLAS_THREAD_SAFE |
|
mutableprivate |
◆ m_cacheLink
The documentation for this class was generated from the following files: