Wrapper to store a context and allow queueing it into a boost::intrusive::list.
More...
Public Member Functions | |
| ctx_impl (context::id const &cid, location_md &l, const process_id pid) | |
| template<typename Runqueue > | |
| void | message_push (message_ptr m, const epoch_type e, Runqueue &rq) |
| template<typename Runqueue > | |
| size_type | operator() (const bool light_yield, Runqueue &rq) |
| id const & | get_id (void) const noexcept |
| full_location const & | get_initiator (void) const noexcept |
| Returns the gang id and location id as a full_location object that created this context object. | |
| full_location const & | get_current_location (void) const noexcept |
| Returns the gang id and location id associated with this context as a full_location object. | |
| gang_md const & | get_gang_md (void) const noexcept |
| gang_md & | get_gang_md (void) noexcept |
| location_md const & | get_location_md (void) const noexcept |
| location_md & | get_location_md (void) noexcept |
| gang_md::id | get_gang_id (void) const noexcept |
| location_md::id | get_location_id (void) const noexcept |
| process_id | get_source_process_id (void) const noexcept |
| bool | is_intragang (void) const noexcept |
| nesting_level | get_nesting (void) const noexcept |
| bool | is_base (void) const noexcept |
| void | set_epoch (const epoch_type e) |
| Sets the epoch this context is in. More... | |
| epoch_type | get_epoch (void) const noexcept |
| void * | allocate_return (const std::size_t size) |
| Allocates space for a return value request. | |
| aggregator_type & | get_aggregator (full_location const &loc) |
| Returns a request aggregator to the given destination. More... | |
| void | flush_requests (void) |
| Flushes all aggregated requests. | |
| void | flush (void) |
| Flushes all aggregated requests and fence metadata. | |
| void | count_pending (full_location const &loc) |
| Increases the count of pending buffers. More... | |
| void | count_pending (const gang_md::id dst_gid, const unsigned int N) |
Increases the count of pending buffers by N. More... | |
| void | count_processed (void) |
| Increases the count of processed buffers. More... | |
Public Types | |
| using | size_type = std::size_t |
| using | id = context_id |
| using | aggregator_type = context_impl::aggregator |
| using | epoch_type = logical_clock::time_type |
Wrapper to store a context and allow queueing it into a boost::intrusive::list.
|
inherited |
Sets the epoch this context is in.
If epoch differs from the previous, requests will be flushed.
|
inherited |
Returns a request aggregator to the given destination.
The aggregator from the previous call to get_aggregator() is memoized unless flush() has been called.
|
inherited |
Increases the count of pending buffers.
This function is called when the destination of the requests in the buffer is loc.
|
inherited |
Increases the count of pending buffers by N.
This function is called when the destination of the requests in the buffer is some or all locations in gang dst_gid.
|
inherited |
Increases the count of processed buffers.
This function flushes the buffer containing return values, since blocking calls may be waiting for them.
1.8.13