Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::task_list Class Reference

A list of children. More...

#include <task.h>

Inheritance diagram for tbb::task_list:
Collaboration diagram for tbb::task_list:

Public Member Functions

 task_list ()
 Construct empty list. More...
 
 ~task_list ()
 Destroys the list, but does not destroy the task objects. More...
 
bool empty () const
 True if list is empty; false otherwise. More...
 
void push_back (task &task)
 Push task onto back of list. More...
 
taskpop_front ()
 Pop the front task from the list. More...
 
void clear ()
 Clear the list. More...
 

Private Attributes

taskfirst
 
task ** next_ptr
 

Friends

class task
 
class interface5::internal::task_base
 

Additional Inherited Members

- Private Member Functions inherited from tbb::internal::no_copy
 no_copy (const no_copy &)=delete
 
 no_copy ()=default
 

Detailed Description

A list of children.

Used for method task::spawn_children

Definition at line 1063 of file task.h.

Constructor & Destructor Documentation

◆ task_list()

tbb::task_list::task_list ( )
inline

Construct empty list.

Definition at line 1071 of file task.h.

1071 : first(NULL), next_ptr(&first) {}
task * first
Definition: task.h:1065
task ** next_ptr
Definition: task.h:1066

◆ ~task_list()

tbb::task_list::~task_list ( )
inline

Destroys the list, but does not destroy the task objects.

Definition at line 1074 of file task.h.

1074 {}

Member Function Documentation

◆ clear()

void tbb::task_list::clear ( )
inline

Clear the list.

Definition at line 1107 of file task.h.

References tbb::internal::first().

Referenced by tbb::interface5::internal::task_base::spawn(), tbb::task::spawn_and_wait_for_all(), and tbb::task::spawn_root_and_wait().

1107  {
1108  first=NULL;
1109  next_ptr=&first;
1110  }
task * first
Definition: task.h:1065
task ** next_ptr
Definition: task.h:1066
Here is the call graph for this function:
Here is the caller graph for this function:

◆ empty()

bool tbb::task_list::empty ( ) const
inline

True if list is empty; false otherwise.

Definition at line 1077 of file task.h.

References tbb::internal::first().

Referenced by tbb::flow::interface11::async_node< Input, Output, Policy, Allocator >::try_put_impl().

1077 {return !first;}
task * first
Definition: task.h:1065
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pop_front()

task& tbb::task_list::pop_front ( )
inline

Pop the front task from the list.

Definition at line 1098 of file task.h.

Referenced by tbb::flow::interface11::async_node< Input, Output, Policy, Allocator >::try_put_impl().

1098  {
1099  __TBB_ASSERT( !empty(), "attempt to pop item from empty task_list" );
1100  task* result = first;
1101  first = result->prefix().next;
1102  if( !first ) next_ptr = &first;
1103  return *result;
1104  }
tbb::task * next
"next" field for list of task
Definition: task.h:286
task * first
Definition: task.h:1065
friend class task
Definition: task.h:1067
task ** next_ptr
Definition: task.h:1066
bool empty() const
True if list is empty; false otherwise.
Definition: task.h:1077
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
internal::task_prefix & prefix(internal::version_tag *=NULL) const
Get reference to corresponding task_prefix.
Definition: task.h:991
Here is the caller graph for this function:

◆ push_back()

void tbb::task_list::push_back ( task task)
inline

Push task onto back of list.

Definition at line 1080 of file task.h.

References __TBB_ASSERT, tbb::internal::first(), tbb::internal::task_prefix::next, tbb::task::prefix(), and task.

Referenced by tbb::internal::while_group_task< Body >::execute(), tbb::interface9::internal::do_group_task_forward< Iterator, Body, Item >::execute(), tbb::interface9::internal::do_group_task_input< Body, Item >::execute(), tbb::internal::pipeline_root_task::execute(), and tbb::interface9::internal::do_task_iter< Iterator, Body, Item >::run_for_random_access_iterator().

1080  {
1081  task.prefix().next = NULL;
1082  *next_ptr = &task;
1083  next_ptr = &task.prefix().next;
1084  }
friend class task
Definition: task.h:1067
task ** next_ptr
Definition: task.h:1066
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ interface5::internal::task_base

friend class interface5::internal::task_base
friend

Definition at line 1068 of file task.h.

◆ task

friend class task
friend

Definition at line 1067 of file task.h.

Member Data Documentation

◆ first

task* tbb::task_list::first
private

◆ next_ptr

task** tbb::task_list::next_ptr
private

The documentation for this class was generated from the following file:

Copyright © 2005-2019 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.