Lines Matching refs:tso

35 observer_proxy::observer_proxy( d1::task_scheduler_observer& tso )  in observer_proxy()  argument
36 : my_ref_count(1), my_list(nullptr), my_next(nullptr), my_prev(nullptr), my_observer(&tso) in observer_proxy()
150 d1::task_scheduler_observer* tso = nullptr; in do_notify_entry_observers() local
186 tso = p->my_observer; in do_notify_entry_observers()
187 } while (!tso); in do_notify_entry_observers()
189 ++tso->my_busy_count; in do_notify_entry_observers()
199 tso->on_scheduler_entry(worker); in do_notify_entry_observers()
201 intptr_t bc = --tso->my_busy_count; in do_notify_entry_observers()
211 d1::task_scheduler_observer* tso = nullptr; in do_notify_exit_observers() local
240 tso = p->my_observer; in do_notify_exit_observers()
241 } while (!tso); in do_notify_exit_observers()
245 ++tso->my_busy_count; in do_notify_exit_observers()
253 tso->on_scheduler_exit(worker); in do_notify_exit_observers()
255 intptr_t bc = --tso->my_busy_count; in do_notify_exit_observers()
261 void __TBB_EXPORTED_FUNC observe(d1::task_scheduler_observer &tso, bool enable) { in observe() argument
263 if( !tso.my_proxy.load(std::memory_order_relaxed) ) { in observe()
264 observer_proxy* p = new observer_proxy(tso); in observe()
265 tso.my_proxy.store(p, std::memory_order_relaxed); in observe()
266 tso.my_busy_count.store(0, std::memory_order_relaxed); in observe()
295 if ( observer_proxy* proxy = tso.my_proxy.exchange(nullptr) ) { in observe()
297 __TBB_ASSERT( proxy->my_observer == &tso, nullptr); in observe()
312 … spin_wait_until_eq(tso.my_busy_count, 0); // other threads are still accessing the callback in observe()