O'Reilly logo

Intel Threading Building Blocks by James Reinders

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

task Class — Base class for tasks.

Synopsis

#include "tbb/task.h"

class task;

Description

This class is the base class for tasks. Programmers are expected to derive classes from it and override the virtual method task*task::execute().

Each instance of task has associated attributes, which are described in Table 9-3. Although

they are not directly visible, they must be understood to fully grasp how task objects are used.

Warning

Always allocate memory for task objects using the special overloaded new operators provided by the library. Otherwise, results are undefined. Destruction of a task is normally implicit.

Table 9-3. Task attributes

Attribute

Description

owner

The worker thread that is currently in charge of the task.

parent

Either NULL or the parent/continuation task that allocated this task.

depth

The depth of the task in the task tree.

refcount

The number of tasks that have this as their parent. Increments and decrements of refcount must always be atomic.

Tip

The copy constructor and assignment operators for task are not accessible. This prevents the accidental copying of a task, which would be ill-defined and would corrupt internal data structures.

Notation

Some member descriptions illustrate the effects of running the methods by diagrams such as Figure 9-6.

Example effect diagram

Figure 9-6. Example effect diagram

Conventions in the diagram, such as Figure 9-6, are as follows:

  • Each task’s ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required