|
Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
The container for "fairness-oriented" aka "enqueued" tasks. More...
#include <task_stream.h>
Public Member Functions | |
| task_stream () | |
| void | initialize (unsigned n_lanes) |
| ~task_stream () | |
| void | push (task *source, int level, FastRandom &random) |
| Push a task into a lane. More... | |
| task * | pop (int level, unsigned &last_used_lane) |
| Try finding and popping a task. More... | |
| bool | empty (int level) |
| Checks existence of a task. More... | |
| intptr_t | drain () |
| Destroys all remaining tasks in every lane. Returns the number of destroyed tasks. More... | |
| task_stream () | |
| void | initialize (unsigned n_lanes) |
| ~task_stream () | |
| bool | try_push (task *source, int level, unsigned lane_idx) |
| Returns true on successful push, otherwise - false. More... | |
| template<typename lane_selector_t > | |
| void | push (task *source, int level, const lane_selector_t &next_lane) |
| Push a task into a lane. Lane selection is performed by passed functor. More... | |
| task * | try_pop (int level, unsigned lane_idx) |
| Returns pointer to task on successful pop, otherwise - NULL. More... | |
| template<typename lane_selector_t > | |
| task * | pop (int level, const lane_selector_t &next_lane) |
| task * | look_specific (__TBB_ISOLATION_ARG(task_stream_base::lane_t::queue_base_t &queue, isolation_tag isolation)) |
| task * | pop_specific (int level, __TBB_ISOLATION_ARG(unsigned &last_used_lane, isolation_tag isolation)) |
| Try finding and popping a related task. More... | |
| bool | empty (int level) |
| Checks existence of a task. More... | |
| intptr_t | drain () |
| Destroys all remaining tasks in every lane. Returns the number of destroyed tasks. More... | |
Private Types | |
| typedef queue_and_mutex< task *, spin_mutex > | lane_t |
| typedef task_stream_accessor< accessor >::lane_t | lane_t |
Private Attributes | |
| population_t | population [Levels] |
| padded< lane_t > * | lanes [Levels] |
| unsigned | N |
Additional Inherited Members | |
Protected Types inherited from tbb::internal::task_stream_accessor< accessor > | |
| typedef queue_and_mutex< task *, spin_mutex > | lane_t |
Protected Types inherited from tbb::internal::task_stream_base | |
| typedef queue_and_mutex< task *, spin_mutex > | lane_t |
Protected Member Functions inherited from tbb::internal::task_stream_accessor< accessor > | |
| task * | get_item (lane_t::queue_base_t &queue) |
Private Member Functions inherited from tbb::internal::no_copy | |
| no_copy () | |
| Allow default construction. More... | |
The container for "fairness-oriented" aka "enqueued" tasks.
Definition at line 73 of file task_stream.h.
|
private |
Definition at line 74 of file task_stream.h.
|
private |
Definition at line 166 of file task_stream_extended.h.
|
inline |
Definition at line 80 of file task_stream.h.
|
inline |
Definition at line 99 of file task_stream.h.
|
inline |
Definition at line 172 of file task_stream_extended.h.
|
inline |
Definition at line 191 of file task_stream_extended.h.
|
inline |
Destroys all remaining tasks in every lane. Returns the number of destroyed tasks.
Tasks are not executed, because it would potentially create more tasks at a late stage. The scheduler is really expected to execute all tasks before task_stream destruction.
Definition at line 149 of file task_stream.h.
|
inline |
Destroys all remaining tasks in every lane. Returns the number of destroyed tasks.
Tasks are not executed, because it would potentially create more tasks at a late stage. The scheduler is really expected to execute all tasks before task_stream destruction.
Definition at line 300 of file task_stream_extended.h.
|
inline |
|
inline |
|
inline |
Definition at line 87 of file task_stream.h.
|
inline |
Definition at line 179 of file task_stream_extended.h.
|
inline |
Definition at line 249 of file task_stream_extended.h.
|
inline |
Try finding and popping a task.
Definition at line 120 of file task_stream.h.
|
inline |
Try finding and popping a task using passed functor for lane selection. Last used lane is updated inside lane selector.
Definition at line 238 of file task_stream_extended.h.
|
inline |
Try finding and popping a related task.
Definition at line 270 of file task_stream_extended.h.
|
inline |
Push a task into a lane.
Definition at line 105 of file task_stream.h.
|
inline |
Push a task into a lane. Lane selection is performed by passed functor.
Definition at line 210 of file task_stream_extended.h.
|
inline |
Returns pointer to task on successful pop, otherwise - NULL.
Definition at line 220 of file task_stream_extended.h.
|
inline |
Returns true on successful push, otherwise - false.
Definition at line 197 of file task_stream_extended.h.
|
private |
Definition at line 76 of file task_stream.h.
|
private |
Definition at line 77 of file task_stream.h.
|
private |
Definition at line 75 of file task_stream.h.