| 
    Intel(R) Threading Building Blocks Doxygen Documentation
    version 4.2.3
    
   | 
 
Split work to be done in the scan. More...
#include <parallel_scan.h>
Public Attributes | |
| final_sum_type * | my_incoming | 
| final_sum_type * | my_body | 
| Body * | my_stuff_last | 
Private Types | |
| typedef final_sum< Range, Body > | final_sum_type | 
Private Member Functions | |
| sum_node (const Range range_, bool left_is_final_) | |
| task * | create_child (const Range &range_, final_sum_type &f, sum_node *n, final_sum_type *incoming_, Body *stuff_last_) | 
| task * | execute () __TBB_override | 
| Should be overridden by derived classes.  More... | |
Private Attributes | |
| final_sum_type * | my_left_sum | 
| sum_node * | my_left | 
| sum_node * | my_right | 
| bool | my_left_is_final | 
| Range | my_range | 
Friends | |
| template<typename Range_ , typename Body_ , typename Partitioner_ > | |
| class | start_scan | 
| template<typename Range_ , typename Body_ > | |
| class | finish_scan | 
Additional Inherited Members | |
  Public Types inherited from tbb::task | |
| 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... | |
  Public Member Functions inherited from tbb::task | |
| 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... | |
  Static Public Member Functions inherited from tbb::task | |
| 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... | |
  Protected Member Functions inherited from tbb::task | |
| task () | |
| Default constructor.  More... | |
Split work to be done in the scan.
Definition at line 82 of file parallel_scan.h.
      
  | 
  private | 
Definition at line 83 of file parallel_scan.h.
      
  | 
  inlineprivate | 
Definition at line 94 of file parallel_scan.h.
References tbb::internal::sum_node< Range, Body >::my_body, tbb::internal::sum_node< Range, Body >::my_incoming, and tbb::internal::poison_pointer().
      
  | 
  inlineprivate | 
Definition at line 106 of file parallel_scan.h.
References tbb::internal::final_sum< Range, Body >::finish_construction(), tbb::internal::sum_node< Range, Body >::my_body, tbb::internal::sum_node< Range, Body >::my_incoming, tbb::internal::sum_node< Range, Body >::my_stuff_last, and tbb::task::recycle_as_child_of().
Referenced by tbb::internal::sum_node< Range, Body >::execute().
      
  | 
  inlineprivatevirtual | 
Should be overridden by derived classes.
Implements tbb::task.
Definition at line 118 of file parallel_scan.h.
References tbb::internal::sum_node< Range, Body >::create_child(), tbb::internal::final_sum< Range, Body >::my_body, tbb::internal::sum_node< Range, Body >::my_body, tbb::internal::sum_node< Range, Body >::my_incoming, tbb::internal::sum_node< Range, Body >::my_left, tbb::internal::sum_node< Range, Body >::my_left_is_final, tbb::internal::sum_node< Range, Body >::my_left_sum, tbb::internal::sum_node< Range, Body >::my_range, tbb::internal::sum_node< Range, Body >::my_right, tbb::internal::sum_node< Range, Body >::my_stuff_last, tbb::task::recycle_as_continuation(), and tbb::task::set_ref_count().
      
  | 
  friend | 
Definition at line 139 of file parallel_scan.h.
      
  | 
  friend | 
Definition at line 136 of file parallel_scan.h.
| final_sum_type* tbb::internal::sum_node< Range, Body >::my_body | 
| final_sum_type* tbb::internal::sum_node< Range, Body >::my_incoming | 
      
  | 
  private | 
Definition at line 90 of file parallel_scan.h.
Referenced by tbb::internal::sum_node< Range, Body >::execute(), tbb::internal::finish_scan< Range, Body >::execute(), and tbb::internal::start_scan< Range, Body, Partitioner >::execute().
      
  | 
  private | 
Definition at line 92 of file parallel_scan.h.
Referenced by tbb::internal::sum_node< Range, Body >::execute(), and tbb::internal::finish_scan< Range, Body >::execute().
      
  | 
  private | 
Definition at line 89 of file parallel_scan.h.
Referenced by tbb::internal::sum_node< Range, Body >::execute(), tbb::internal::finish_scan< Range, Body >::execute(), and tbb::internal::start_scan< Range, Body, Partitioner >::execute().
      
  | 
  private | 
Definition at line 93 of file parallel_scan.h.
Referenced by tbb::internal::sum_node< Range, Body >::execute().
      
  | 
  private | 
Definition at line 91 of file parallel_scan.h.
Referenced by tbb::internal::sum_node< Range, Body >::execute(), tbb::internal::finish_scan< Range, Body >::execute(), and tbb::internal::start_scan< Range, Body, Partitioner >::execute().
| Body* tbb::internal::sum_node< Range, Body >::my_stuff_last | 
Definition at line 87 of file parallel_scan.h.
Referenced by tbb::internal::sum_node< Range, Body >::create_child(), tbb::internal::sum_node< Range, Body >::execute(), and tbb::internal::start_scan< Range, Body, Partitioner >::run().