Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
For internal use only. More...
#include <parallel_do.h>
Public Member Functions | |
do_task_iter (Iterator first, Iterator last, feeder_type &feeder) | |
![]() | |
virtual | ~task () |
Destructor. More... | |
internal::allocate_continuation_proxy & | allocate_continuation () |
Returns proxy for overloaded new that allocates a continuation task of *this. More... | |
internal::allocate_child_proxy & | allocate_child () |
Returns proxy for overloaded new that allocates a child task of *this. More... | |
void | recycle_as_continuation () |
Change this to be a continuation of its former self. More... | |
void | recycle_as_safe_continuation () |
Recommended to use, safe variant of recycle_as_continuation. More... | |
void | recycle_as_child_of (task &new_parent) |
Change this to be a child of new_parent. More... | |
void | recycle_to_reexecute () |
Schedule this for reexecution after current execute() returns. More... | |
void | set_ref_count (int count) |
Set reference count. More... | |
void | increment_ref_count () |
Atomically increment reference count. More... | |
int | add_ref_count (int count) |
Atomically adds to reference count and returns its new value. More... | |
int | decrement_ref_count () |
Atomically decrement reference count and returns its new value. More... | |
void | spawn_and_wait_for_all (task &child) |
Similar to spawn followed by wait_for_all, but more efficient. More... | |
void __TBB_EXPORTED_METHOD | spawn_and_wait_for_all (task_list &list) |
Similar to spawn followed by wait_for_all, but more efficient. More... | |
void | wait_for_all () |
Wait for reference count to become one, and set reference count to zero. More... | |
task * | parent () const |
task on whose behalf this task is working, or NULL if this is a root. More... | |
void | set_parent (task *p) |
sets parent task pointer to specified value More... | |
task_group_context * | context () |
This method is deprecated and will be removed in the future. More... | |
task_group_context * | group () |
Pointer to the task group descriptor. More... | |
bool | is_stolen_task () const |
True if task was stolen from the task pool of another thread. More... | |
bool | is_enqueued_task () const |
True if the task was enqueued. More... | |
state_type | state () const |
Current execution state. More... | |
int | ref_count () const |
The internal reference count. More... | |
bool __TBB_EXPORTED_METHOD | is_owned_by_current_thread () const |
Obsolete, and only retained for the sake of backward compatibility. Always returns true. More... | |
void | set_affinity (affinity_id id) |
Set affinity for this task. More... | |
affinity_id | affinity () const |
Current affinity of this task. More... | |
virtual void __TBB_EXPORTED_METHOD | note_affinity (affinity_id id) |
Invoked by scheduler to notify task that it ran on unexpected thread. More... | |
void __TBB_EXPORTED_METHOD | change_group (task_group_context &ctx) |
Moves this task from its current group into another one. More... | |
bool | cancel_group_execution () |
Initiates cancellation of all tasks in this cancellation group and its subordinate groups. More... | |
bool | is_cancelled () const |
Returns true if the context has received cancellation request. More... | |
__TBB_DEPRECATED void | set_group_priority (priority_t p) |
Changes priority of the task group this task belongs to. More... | |
__TBB_DEPRECATED priority_t | group_priority () const |
Retrieves current priority of the task group this task belongs to. More... | |
Private Types | |
typedef parallel_do_feeder_impl< Body, Item > | feeder_type |
Private Member Functions | |
task * | execute () __TBB_override |
Should be overridden by derived classes. More... | |
task * | run (void *) |
task * | run_for_input_iterator () |
task * | run (std::forward_iterator_tag *) |
task * | run_for_forward_iterator () |
task * | run (std::random_access_iterator_tag *) |
task * | run_for_random_access_iterator () |
Private Attributes | |
Iterator | my_first |
Iterator | my_last |
feeder_type & | my_feeder |
Additional Inherited Members | |
![]() | |
enum | state_type { executing, reexecute, ready, allocated, freed, recycle } |
Enumeration of task states that the scheduler considers. More... | |
typedef internal::affinity_id | affinity_id |
An id as used for specifying affinity. More... | |
![]() | |
static internal::allocate_root_proxy | allocate_root () |
Returns proxy for overloaded new that allocates a root task. More... | |
static internal::allocate_root_with_context_proxy | allocate_root (task_group_context &ctx) |
Returns proxy for overloaded new that allocates a root task associated with user supplied context. More... | |
static void | spawn_root_and_wait (task &root) |
Spawn task allocated by allocate_root, wait for it to complete, and deallocate it. More... | |
static void | spawn_root_and_wait (task_list &root_list) |
Spawn root tasks on list and wait for all of them to finish. More... | |
static void | enqueue (task &t) |
Enqueue task for starvation-resistant execution. More... | |
static void | enqueue (task &t, priority_t p) |
Enqueue task for starvation-resistant execution on the specified priority level. More... | |
static void | enqueue (task &t, task_arena &arena, priority_t p=priority_t(0)) |
Enqueue task in task_arena. More... | |
static task &__TBB_EXPORTED_FUNC | self () |
The innermost task being executed or destroyed by the current thread at the moment. More... | |
![]() | |
task () | |
Default constructor. More... | |
For internal use only.
Gets block of iterations and packages them into a do_group_task.
Definition at line 298 of file parallel_do.h.
|
private |
Definition at line 300 of file parallel_do.h.
|
inline |
Definition at line 303 of file parallel_do.h.
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_random_access_iterator().
|
inlineprivatevirtual |
Should be overridden by derived classes.
Implements tbb::task.
Definition at line 322 of file parallel_do.h.
References tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run().
|
inlineprivate |
This is the most restricted variant that operates on input iterators or iterators with unknown tags (tags not derived from the standard ones).
Definition at line 330 of file parallel_do.h.
References tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_input_iterator().
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::execute().
|
inlineprivate |
Definition at line 356 of file parallel_do.h.
References tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_forward_iterator().
|
inlineprivate |
Definition at line 374 of file parallel_do.h.
References tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_random_access_iterator().
|
inlineprivate |
Definition at line 358 of file parallel_do.h.
References tbb::internal::first(), tbb::interface9::internal::parallel_do_feeder_impl< Body, Item >::my_barrier, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_feeder, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_first, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_last, and tbb::task::recycle_to_reexecute().
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run().
|
inlineprivate |
Definition at line 332 of file parallel_do.h.
References tbb::interface9::internal::parallel_do_feeder_impl< Body, Item >::my_barrier, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_feeder, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_first, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_last, and tbb::task::recycle_to_reexecute().
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run().
|
inlineprivate |
Definition at line 376 of file parallel_do.h.
References tbb::task::allocate_child(), tbb::task::allocate_continuation(), tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::do_task_iter(), tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_feeder, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_first, tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::my_last, tbb::task_list::push_back(), tbb::task::recycle_as_child_of(), tbb::task::set_ref_count(), and tbb::task::spawn_and_wait_for_all().
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run().
|
private |
Definition at line 310 of file parallel_do.h.
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_forward_iterator(), tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_input_iterator(), and tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_random_access_iterator().
|
private |
Definition at line 308 of file parallel_do.h.
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_forward_iterator(), tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_input_iterator(), and tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_random_access_iterator().
|
private |
Definition at line 309 of file parallel_do.h.
Referenced by tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_forward_iterator(), tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_input_iterator(), and tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_random_access_iterator().