17 #ifndef __TBB_task_scheduler_observer_H
18 #define __TBB_task_scheduler_observer_H
20 #define __TBB_task_scheduler_observer_H_include_area
24 #if __TBB_ARENA_OBSERVER
28 #if __TBB_SCHEDULER_OBSERVER
31 namespace interface6 {
32 class task_scheduler_observer;
90 #if __TBB_ARENA_OBSERVER
91 namespace interface6 {
100 static const intptr_t
v6_trait = (intptr_t)((~(uintptr_t)0 >> 1) + 1);
118 #if __TBB_ARENA_OBSERVER
126 #if __TBB_ARENA_OBSERVER
154 using interface6::task_scheduler_observer;
164 #undef __TBB_task_scheduler_observer_H_include_area
#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
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
virtual ~task_scheduler_observer_v3()
Destructor automatically switches observation off if it is enabled.
friend class observer_list
task_scheduler_observer_v3()
Construct observer with observation disabled.
void __TBB_EXPORTED_METHOD observe(bool state=true)
Enable or disable observation.
virtual void on_scheduler_exit(bool)
Exit notification.
observer_proxy * my_proxy
Pointer to the proxy holding this observer.
friend class observer_proxy
atomic< intptr_t > my_busy_count
Counter preventing the observer from being destroyed while in use by the scheduler.
virtual void on_scheduler_entry(bool)
Entry notification.
bool is_observing() const
Returns true if observation is enabled, false otherwise.
static const intptr_t v6_trait
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_list
task_scheduler_observer(bool local=false)
Construct local or global observer in inactive state (observation disabled).
virtual ~task_scheduler_observer()
void observe(bool state=true)
Enable or disable observation.
friend class internal::observer_proxy