Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::interface6::internal::basic_handler Class Reference

#include <aggregator.h>

Collaboration diagram for tbb::interface6::internal::basic_handler:

Public Member Functions

 basic_handler ()
 
void operator() (aggregator_operation *op_list) const
 

Detailed Description

Definition at line 69 of file aggregator.h.

Constructor & Destructor Documentation

◆ basic_handler()

tbb::interface6::internal::basic_handler::basic_handler ( )
inline

Definition at line 71 of file aggregator.h.

71 {}

Member Function Documentation

◆ operator()()

void tbb::interface6::internal::basic_handler::operator() ( aggregator_operation op_list) const
inline

Definition at line 72 of file aggregator.h.

72  {
73  while (op_list) {
74  // ITT note: &(op_list->status) tag is used to cover accesses to the operation data.
75  // The executing thread "acquires" the tag (see start()) and then performs
76  // the associated operation w/o triggering a race condition diagnostics.
77  // A thread that created the operation is waiting for its status (see execute_impl()),
78  // so when this thread is done with the operation, it will "release" the tag
79  // and update the status (see finish()) to give control back to the waiting thread.
80  basic_operation_base& request = static_cast<basic_operation_base&>(*op_list);
81  // IMPORTANT: need to advance op_list to op_list->next() before calling request.finish()
82  op_list = op_list->next();
83  request.start();
84  request.apply_body();
85  request.finish();
86  }
87  }

References tbb::interface6::internal::basic_operation_base::apply_body(), tbb::interface6::aggregator_operation::finish(), tbb::interface6::aggregator_operation::next(), and tbb::interface6::aggregator_operation::start().

Here is the call graph for this function:

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

Copyright © 2005-2020 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.