Lines Matching refs:tls
153 std::size_t arena::occupy_free_slot_in_range( thread_data& tls, std::size_t lower, std::size_t uppe… in occupy_free_slot_in_range() argument
156 std::size_t index = tls.my_arena_index; in occupy_free_slot_in_range()
157 if ( index < lower || index >= upper ) index = tls.my_random.get() % (upper - lower) + lower; in occupy_free_slot_in_range()
168 std::size_t arena::occupy_free_slot(thread_data& tls) { in occupy_free_slot() argument
170 …std::size_t index = as_worker ? out_of_arena : occupy_free_slot_in_range( tls, 0, my_num_reserved… in occupy_free_slot()
173 index = occupy_free_slot_in_range(tls, my_num_reserved_slots, my_num_slots ); in occupy_free_slot()
188 void arena::process(thread_data& tls) { in process() argument
189 governor::set_thread_data(tls); // TODO: consider moving to create_one_job. in process()
193 std::size_t index = occupy_free_slot</*as_worker*/true>(tls); in process()
202 tls.attach_arena(*this, index); in process()
204 tls.my_inbox.set_is_idle(true); in process()
205 if (tls.my_arena_slot->is_task_pool_published()) { in process()
206 tls.my_inbox.set_is_idle(false); in process()
209 task_dispatcher& task_disp = tls.my_arena_slot->default_task_dispatcher(); in process()
210 tls.enter_task_dispatcher(task_disp, calculate_stealing_threshold()); in process()
213 …__TBB_ASSERT( !tls.my_last_observer, "There cannot be notified local observers when entering arena… in process()
214 my_observers.notify_entry_observers(tls.my_last_observer, tls.my_is_worker); in process()
218 d1::task* t = tls.my_task_dispatcher->local_wait_for_all(nullptr, waiter); in process()
221 tls.my_inbox.set_is_idle(true); in process()
224 __TBB_ASSERT(governor::is_thread_data_set(&tls), nullptr); in process()
225 __TBB_ASSERT(tls.my_task_dispatcher == &task_disp, nullptr); in process()
227 my_observers.notify_exit_observers(tls.my_last_observer, tls.my_is_worker); in process()
228 tls.my_last_observer = nullptr; in process()
230 tls.leave_task_dispatcher(); in process()
234 tls.my_arena_slot->release(); in process()
235 tls.my_arena_slot = nullptr; in process()
236 tls.my_inbox.detach(); in process()
237 __TBB_ASSERT(tls.my_inbox.is_idle_state(true), nullptr); in process()
246 … __TBB_ASSERT(tls.my_arena == this, "my_arena is used as a hint when searching the arena to join"); in process()
855 thread_data* tls = governor::get_thread_data(); in isolate_within_arena() local
856 assert_pointers_valid(tls, tls->my_task_dispatcher); in isolate_within_arena()
857 task_dispatcher* dispatcher = tls->my_task_dispatcher; in isolate_within_arena()