Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
#include <task_scheduler_observer.h>
Public Member Functions | |
void __TBB_EXPORTED_METHOD | observe (bool state=true) |
Enable or disable observation. More... | |
bool | is_observing () const |
Returns true if observation is enabled, false otherwise. More... | |
task_scheduler_observer_v3 () | |
Construct observer with observation disabled. More... | |
virtual void | on_scheduler_entry (bool) |
Entry notification. More... | |
virtual void | on_scheduler_exit (bool) |
Exit notification. More... | |
virtual | ~task_scheduler_observer_v3 () |
Destructor automatically switches observation off if it is enabled. More... | |
Private Attributes | |
observer_proxy * | my_proxy |
Pointer to the proxy holding this observer. More... | |
atomic< intptr_t > | my_busy_count |
Counter preventing the observer from being destroyed while in use by the scheduler. More... | |
Friends | |
class | observer_proxy |
class | observer_list |
class | interface6::task_scheduler_observer |
Definition at line 36 of file task_scheduler_observer.h.
|
inline |
Construct observer with observation disabled.
Definition at line 61 of file task_scheduler_observer.h.
References tbb::relaxed, and tbb::internal::atomic_impl< T >::store().
|
inlinevirtual |
Destructor automatically switches observation off if it is enabled.
Definition at line 82 of file task_scheduler_observer.h.
References observe().
|
inline |
Returns true if observation is enabled, false otherwise.
Definition at line 58 of file task_scheduler_observer.h.
void __TBB_EXPORTED_METHOD tbb::internal::task_scheduler_observer_v3::observe | ( | bool | state = true | ) |
Enable or disable observation.
For local observers the method can be used only when the current thread has the task scheduler initialized or is attached to an arena.
Repeated calls with the same state are no-ops.
Referenced by tbb::interface6::task_scheduler_observer::observe(), tbb::interface6::task_scheduler_observer::~task_scheduler_observer(), and ~task_scheduler_observer_v3().
|
inlinevirtual |
Entry notification.
Invoked from inside observe(true) call and whenever a worker enters the arena this observer is associated with. If a thread is already in the arena when the observer is activated, the entry notification is called before it executes the first stolen task.
Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.
Definition at line 71 of file task_scheduler_observer.h.
|
inlinevirtual |
Exit notification.
Invoked from inside observe(false) call and whenever a worker leaves the arena this observer is associated with.
Obsolete semantics. For global observers it is called by a thread before the first steal since observation became enabled.
Definition at line 79 of file task_scheduler_observer.h.
|
friend |
Definition at line 39 of file task_scheduler_observer.h.
|
friend |
Definition at line 38 of file task_scheduler_observer.h.
|
friend |
Definition at line 37 of file task_scheduler_observer.h.
|
private |
Counter preventing the observer from being destroyed while in use by the scheduler.
Valid only when observation is on.
Definition at line 47 of file task_scheduler_observer.h.
Referenced by tbb::interface6::task_scheduler_observer::observe().
|
private |
Pointer to the proxy holding this observer.
Observers are proxied by the scheduler to maintain persistent lists of them.
Definition at line 43 of file task_scheduler_observer.h.
Referenced by tbb::interface6::task_scheduler_observer::observe(), and tbb::interface6::task_scheduler_observer::~task_scheduler_observer().