Lines Matching refs:td
197 thread_data& td = *new(cache_aligned_allocate(sizeof(thread_data))) thread_data(0, false); in init_external_thread() local
198 td.attach_arena(a, /*slot index*/ 0); in init_external_thread()
199 __TBB_ASSERT(td.my_inbox.is_idle_state(false), nullptr); in init_external_thread()
203 task_dispatcher& task_disp = td.my_arena_slot->default_task_dispatcher(); in init_external_thread()
204 td.enter_task_dispatcher(task_disp, calculate_stealing_threshold(stack_base, stack_size)); in init_external_thread()
206 td.my_arena_slot->occupy(); in init_external_thread()
207 thr_control->register_thread(td); in init_external_thread()
208 set_thread_data(td); in init_external_thread()
220 thread_data* td = static_cast<thread_data*>(tls); in auto_terminate() local
222 auto clear_tls = [td] { in auto_terminate()
223 td->~thread_data(); in auto_terminate()
224 cache_aligned_deallocate(td); in auto_terminate()
229 if (td->my_arena_slot) { in auto_terminate()
230 arena* a = td->my_arena; in auto_terminate()
235 if (!is_thread_data_set(td)) { in auto_terminate()
236 set_thread_data(*td); in auto_terminate()
239 a->my_observers.notify_exit_observers(td->my_last_observer, td->my_is_worker); in auto_terminate()
241 td->leave_task_dispatcher(); in auto_terminate()
242 td->my_arena_slot->release(); in auto_terminate()
246 thr_control->unregister_thread(*td); in auto_terminate()
284 thread_data* td = governor::get_thread_data_if_initialized(); in finalize_impl() local
285 if (td) { in finalize_impl()
286 task_dispatcher* task_disp = td->my_task_dispatcher; in finalize_impl()
288 … if (task_disp->m_properties.outermost && !td->my_is_worker) { // is not inside a parallel region in finalize_impl()
289 governor::auto_terminate(td); in finalize_impl()