Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::EventMerger Class Reference

#include <event_impl.h>

Collaboration diagram for Realm::EventMerger:

Classes

class  MergeEventPrecondition
 

Public Member Functions

 EventMerger (GenEventImpl *_event_impl)
 
 ~EventMerger (void)
 
bool is_active (void) const
 
void prepare_merger (Event _finish_event, bool _ignore_faults, std::optional< size_t > expected_events=std::optional< size_t >())
 
void add_precondition (Event wait_for)
 
void arm_merger (void)
 
MergeEventPreconditionget_next_precondition (void)
 

Protected Member Functions

void precondition_triggered (bool poisoned, TimeLimit work_until, MergeEventPrecondition *precondition=nullptr)
 

Protected Attributes

GenEventImplevent_impl
 
EventImpl::gen_t finish_gen
 
unsigned precondition_offset
 
bool ignore_faults
 
bool recycle_preconditions
 
atomic< int > count_needed
 
atomic< int > faults_observed
 
MergeEventPrecondition inline_preconditions [MAX_INLINE_PRECONDITIONS]
 
std::deque< MergeEventPreconditionoverflow_preconditions
 
EventWaiter::EventWaiterList free_preconditions
 

Static Protected Attributes

static constexpr size_t MAX_INLINE_PRECONDITIONS = 6
 

Friends

class MergeEventPrecondition
 

Constructor & Destructor Documentation

◆ EventMerger()

Realm::EventMerger::EventMerger ( GenEventImpl _event_impl)

◆ ~EventMerger()

Realm::EventMerger::~EventMerger ( void  )

Member Function Documentation

◆ add_precondition()

void Realm::EventMerger::add_precondition ( Event  wait_for)

◆ arm_merger()

void Realm::EventMerger::arm_merger ( void  )

◆ get_next_precondition()

MergeEventPrecondition * Realm::EventMerger::get_next_precondition ( void  )

◆ is_active()

bool Realm::EventMerger::is_active ( void  ) const

◆ precondition_triggered()

void Realm::EventMerger::precondition_triggered ( bool  poisoned,
TimeLimit  work_until,
MergeEventPrecondition precondition = nullptr 
)
protected

◆ prepare_merger()

void Realm::EventMerger::prepare_merger ( Event  _finish_event,
bool  _ignore_faults,
std::optional< size_t >  expected_events = std::optional< size_t >() 
)

Friends And Related Symbol Documentation

◆ MergeEventPrecondition

friend class MergeEventPrecondition
friend

Member Data Documentation

◆ count_needed

atomic<int> Realm::EventMerger::count_needed
protected

◆ event_impl

GenEventImpl* Realm::EventMerger::event_impl
protected

◆ faults_observed

atomic<int> Realm::EventMerger::faults_observed
protected

◆ finish_gen

EventImpl::gen_t Realm::EventMerger::finish_gen
protected

◆ free_preconditions

EventWaiter::EventWaiterList Realm::EventMerger::free_preconditions
protected

◆ ignore_faults

bool Realm::EventMerger::ignore_faults
protected

◆ inline_preconditions

MergeEventPrecondition Realm::EventMerger::inline_preconditions[MAX_INLINE_PRECONDITIONS]
protected

◆ MAX_INLINE_PRECONDITIONS

constexpr size_t Realm::EventMerger::MAX_INLINE_PRECONDITIONS = 6
staticconstexprprotected

◆ overflow_preconditions

std::deque<MergeEventPrecondition> Realm::EventMerger::overflow_preconditions
protected

◆ precondition_offset

unsigned Realm::EventMerger::precondition_offset
protected

◆ recycle_preconditions

bool Realm::EventMerger::recycle_preconditions
protected

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