STAPL API Reference          
Overview   Containers   Algorithms   Views   Skeletons   Run-Time System
Modules     Classes    
List of all members | Public Member Functions | Static Public Member Functions | Friends
stapl::runtime::runqueue::impl Class Reference

Location RMI and RPC runqueue. More...

Public Member Functions

location_md const & get_location_md (void) const noexcept
 
location_mdget_location_md (void) noexcept
 
bool empty (void) const noexcept
 
bool is_active (void) const noexcept
 
bool is_deferred (void) const noexcept
 
void set_base_context (context &base_ctx) noexcept
 
void unset_base_context (void) noexcept
 
contextget_base_context (void) const noexcept
 
unsigned int yield_intensity (void) const noexcept
 
template<typename Stack >
runqueue::yield_status operator() (Stack &stack, bool light_yield)
 
void fence_enter (void) noexcept
 
void fence_exit (const epoch_type e)
 
void advance_epoch (const epoch_type e)
 Make runnable anything that was blocked because of the epoch.
 
void undefer_requests (void)
 Decrement deferral counter, making held requests runnable if counter has now reached 0 (i.e., no nested deferral requests).
 
void defer_requests (void)
 Tick counter tracking calls to this function. Any time m_deferred_ctr is non-zero, RMIs in this runqueue will not be executed. More...
 
bool try_defer_requests (void)
 If not currently deferring requests, tick counter tracking calls to this function. Any time m_deferred_ctr is non-zero, RMIs in this runqueue will not be executed.
 
void context_idle (ctx_impl &ctx)
 Add the ctx_impl to the idle queue. More...
 
void context_blocked (ctx_impl &ctx, const epoch_type e)
 Add the ctx_impl to the blocked queue, because it has requests in a future epoch.
 
void context_deferred (ctx_impl &ctx)
 Add the ctx_impl to the deferred queue, as this runqueue is currently deferring requests due to locking by a p_object.
 
void context_waiting (ctx_impl &ctx, const epoch_type e)
 Add the ctx_impl to the waiting queue, unless the epoch is in the future.
 

Static Public Member Functions

static void initialize (option const &opts)
 
static void finalize (void) noexcept
 
static implcreate (void *p, location_md &l)
 
static void destroy (impl *r) noexcept
 

Friends

bool operator< (runqueue::impl const &x, runqueue::impl const &y) noexcept
 

Detailed Description

Location RMI and RPC runqueue.

This class provides support for the scheduling of requests. It enforces the Causal RMI Ordering model by keeping an unordered_map of context objects and queue the requests for each one of them.

Member Function Documentation

◆ defer_requests()

void stapl::runtime::runqueue::impl::defer_requests ( void  )

Tick counter tracking calls to this function. Any time m_deferred_ctr is non-zero, RMIs in this runqueue will not be executed.

◆ context_idle()

void stapl::runtime::runqueue::impl::context_idle ( ctx_impl ctx)

Add the ctx_impl to the idle queue.

If ctx is in a big nesting level (>2), then it is deleted.


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