Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Aggregator base class. More...
#include <_aggregator_impl.h>
Public Member Functions | |
aggregator_generic () | |
template<typename handler_type > | |
void | execute (operation_type *op, handler_type &handle_operations, bool long_life_time=true) |
Execute an operation. More... | |
Private Member Functions | |
template<typename handler_type > | |
void | start_handle_operations (handler_type &handle_operations) |
Trigger the handling of operations when the handler is free. More... | |
Private Attributes | |
atomic< operation_type * > | pending_operations |
An atomically updated list (aka mailbox) of pending operations. More... | |
uintptr_t | handler_busy |
Controls thread access to handle_operations. More... | |
Aggregator base class.
An aggregator for collecting operations coming from multiple sources and executing them serially on a single thread. operation_type must be derived from aggregated_operation. The parameter handler_type is a functor that will be passed the list of operations and is expected to handle each operation appropriately, setting the status of each operation to non-zero.
Definition at line 49 of file _aggregator_impl.h.
|
inline |
Definition at line 51 of file _aggregator_impl.h.
|
inline |
Execute an operation.
Places an operation into the waitlist (pending_operations), and either handles the list, or waits for the operation to complete, or returns. The long_life_time parameter specifies the life time of the given operation object. Operations with long_life_time == true may be accessed after execution. A "short" life time operation (long_life_time == false) can be destroyed during execution, and so any access to it after it was put into the waitlist, including status check, is invalid. As a consequence, waiting for completion of such operation causes undefined behavior.
Definition at line 64 of file _aggregator_impl.h.
|
inlineprivate |
Trigger the handling of operations when the handler is free.
Definition at line 110 of file _aggregator_impl.h.
|
private |
Controls thread access to handle_operations.
Definition at line 106 of file _aggregator_impl.h.
|
private |
An atomically updated list (aka mailbox) of pending operations.
Definition at line 104 of file _aggregator_impl.h.