|
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... | |
Private Types | |
| typedef queue_and_mutex< task *, spin_mutex > | lane_t |
Private Attributes | |
| population_t | population [Levels] |
| padded< lane_t > * | lanes [Levels] |
| unsigned | N |
Additional Inherited Members | |
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.
|
inline |
Definition at line 80 of file task_stream.h.
|
inline |
Definition at line 99 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 149 of file task_stream.h.
Referenced by tbb::internal::arena::free_arena().
|
inline |
Checks existence of a task.
Definition at line 142 of file task_stream.h.
Referenced by tbb::internal::arena::has_enqueued_tasks(), tbb::internal::arena::is_out_of_work(), and tbb::internal::arena::restore_priority_if_need().
|
inline |
Definition at line 87 of file task_stream.h.
Referenced by tbb::internal::arena::arena().
|
inline |
Try finding and popping a task.
Definition at line 120 of file task_stream.h.
|
inline |
Push a task into a lane.
Definition at line 105 of file task_stream.h.
Referenced by tbb::internal::arena::enqueue_task().
|
private |
Definition at line 76 of file task_stream.h.
Referenced by tbb::internal::task_stream< num_priority_levels >::drain(), tbb::internal::task_stream< num_priority_levels >::initialize(), tbb::internal::task_stream< num_priority_levels >::pop(), tbb::internal::task_stream< num_priority_levels >::push(), tbb::internal::task_stream< num_priority_levels >::task_stream(), and tbb::internal::task_stream< num_priority_levels >::~task_stream().
|
private |
Definition at line 77 of file task_stream.h.
Referenced by tbb::internal::task_stream< num_priority_levels >::drain(), tbb::internal::task_stream< num_priority_levels >::initialize(), tbb::internal::task_stream< num_priority_levels >::pop(), and tbb::internal::task_stream< num_priority_levels >::push().
|
private |
Definition at line 75 of file task_stream.h.
Referenced by tbb::internal::task_stream< num_priority_levels >::drain(), tbb::internal::task_stream< num_priority_levels >::empty(), tbb::internal::task_stream< num_priority_levels >::initialize(), tbb::internal::task_stream< num_priority_levels >::pop(), tbb::internal::task_stream< num_priority_levels >::push(), and tbb::internal::task_stream< num_priority_levels >::task_stream().