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

#include <rsrv_impl.h>

Collaboration diagram for Realm::ReservationImpl:

Classes

struct  LocalSharedInfo
 
struct  RetryInfo
 

Public Types

enum  { MODE_EXCL = 0 , ZERO_COUNT = 0x11223344 }
 
enum  AcquireType { ACQUIRE_BLOCKING , ACQUIRE_NONBLOCKING , ACQUIRE_NONBLOCKING_RETRY , ACQUIRE_NONBLOCKING_PLACEHOLDER }
 
typedef EventWaiter::EventWaiterList WaiterList
 

Public Member Functions

 ReservationImpl (void)
 
void init (ID _me, unsigned _init_owner)
 
Event acquire (unsigned new_mode, bool exclusive, AcquireType acquire_type, Event after_lock=Event::NO_EVENT)
 
bool select_local_waiters (WaiterList &to_wake, Event &retry)
 
void release (TimeLimit work_until)
 
bool is_locked (unsigned check_mode, bool excl_ok)
 
void release_reservation (void)
 

Static Public Member Functions

static ID make_id (const ReservationImpl &dummy, int owner, ID::IDType index)
 

Public Attributes

Reservation me
 
NodeID owner
 
unsigned count
 
unsigned mode
 
bool in_use
 
Mutex mutex
 
NodeSet remote_waiter_mask
 
NodeSet remote_sharer_mask
 
WaiterList local_excl_waiters
 
std::map< unsigned, LocalSharedInfolocal_shared
 
std::map< unsigned, RetryInforetries
 
bool requested
 
ReservationImplnext_free
 

Static Public Attributes

static const ID::ID_Types ID_TYPE = ID::ID_LOCK
 
static Mutex freelist_mutex
 
static ReservationImplfirst_free
 

Member Typedef Documentation

◆ WaiterList

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MODE_EXCL 
ZERO_COUNT 

◆ AcquireType

Enumerator
ACQUIRE_BLOCKING 
ACQUIRE_NONBLOCKING 
ACQUIRE_NONBLOCKING_RETRY 
ACQUIRE_NONBLOCKING_PLACEHOLDER 

Constructor & Destructor Documentation

◆ ReservationImpl()

Realm::ReservationImpl::ReservationImpl ( void  )

Member Function Documentation

◆ acquire()

Event Realm::ReservationImpl::acquire ( unsigned  new_mode,
bool  exclusive,
AcquireType  acquire_type,
Event  after_lock = Event::NO_EVENT 
)

◆ init()

void Realm::ReservationImpl::init ( ID  _me,
unsigned  _init_owner 
)

◆ is_locked()

bool Realm::ReservationImpl::is_locked ( unsigned  check_mode,
bool  excl_ok 
)

◆ make_id()

static ID Realm::ReservationImpl::make_id ( const ReservationImpl dummy,
int  owner,
ID::IDType  index 
)
inlinestatic

◆ release()

void Realm::ReservationImpl::release ( TimeLimit  work_until)

◆ release_reservation()

void Realm::ReservationImpl::release_reservation ( void  )

◆ select_local_waiters()

bool Realm::ReservationImpl::select_local_waiters ( WaiterList to_wake,
Event retry 
)

Member Data Documentation

◆ count

unsigned Realm::ReservationImpl::count

◆ first_free

ReservationImpl* Realm::ReservationImpl::first_free
static

◆ freelist_mutex

Mutex Realm::ReservationImpl::freelist_mutex
static

◆ ID_TYPE

const ID::ID_Types Realm::ReservationImpl::ID_TYPE = ID::ID_LOCK
static

◆ in_use

bool Realm::ReservationImpl::in_use

◆ local_excl_waiters

WaiterList Realm::ReservationImpl::local_excl_waiters

◆ local_shared

std::map<unsigned, LocalSharedInfo> Realm::ReservationImpl::local_shared

◆ me

Reservation Realm::ReservationImpl::me

◆ mode

unsigned Realm::ReservationImpl::mode

◆ mutex

Mutex Realm::ReservationImpl::mutex

◆ next_free

ReservationImpl* Realm::ReservationImpl::next_free

◆ owner

NodeID Realm::ReservationImpl::owner

◆ remote_sharer_mask

NodeSet Realm::ReservationImpl::remote_sharer_mask

◆ remote_waiter_mask

NodeSet Realm::ReservationImpl::remote_waiter_mask

◆ requested

bool Realm::ReservationImpl::requested

◆ retries

std::map<unsigned, RetryInfo> Realm::ReservationImpl::retries

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