Location RMI and RPC runqueue. More...
Public Member Functions | |
| location_md const & | get_location_md (void) const noexcept |
| location_md & | get_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 |
| context * | get_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 impl * | create (void *p, location_md &l) |
| static void | destroy (impl *r) noexcept |
Friends | |
| bool | operator< (runqueue::impl const &x, runqueue::impl const &y) noexcept |
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.
| 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.
| 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.
1.8.13