21 #ifndef __TBB_task_scheduler_observer_H 22 #define __TBB_task_scheduler_observer_H 25 #if __TBB_ARENA_OBSERVER 29 #if __TBB_SCHEDULER_OBSERVER 32 namespace interface6 {
33 class task_scheduler_observer;
91 #if __TBB_ARENA_OBSERVER 92 namespace interface6 {
101 static const intptr_t
v6_trait = (intptr_t)((~(uintptr_t)0 >> 1) + 1);
119 #if __TBB_ARENA_OBSERVER 127 #if __TBB_ARENA_OBSERVER 155 using interface6::task_scheduler_observer;
virtual ~task_scheduler_observer()
virtual void on_scheduler_entry(bool)
Entry notification.
task_scheduler_observer(task_arena &a)
Construct local observer for a given arena in inactive state (observation disabled).
intptr_t my_context_tag
contains task_arena pointer or tag indicating local or global semantics of the observer
friend class internal::observer_proxy
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
friend class observer_proxy
friend class internal::observer_list
#define __TBB_ASSERT_EX(predicate, comment)
"Extended" version is useful to suppress warnings if a variable is only used with an assert
#define __TBB_EXPORTED_METHOD
static const intptr_t v6_trait
task_scheduler_observer(bool local=false)
Construct local or global observer in inactive state (observation disabled).
observer_proxy * my_proxy
Pointer to the proxy holding this observer.
bool is_observing() const
Returns true if observation is enabled, false otherwise.
virtual ~task_scheduler_observer_v3()
Destructor automatically switches observation off if it is enabled.
task_scheduler_observer_v3()
Construct observer with observation disabled.
void __TBB_EXPORTED_METHOD observe(bool state=true)
Enable or disable observation.
friend class observer_list
virtual void on_scheduler_exit(bool)
Exit notification.
void observe(bool state=true)
Enable or disable observation.
friend class internal::task_scheduler_observer_v3
void store(value_type value)
atomic< intptr_t > my_busy_count
Counter preventing the observer from being destroyed while in use by the scheduler.