Lines Matching refs:a
455 arena& a = arena::allocate_arena(control, num_slots, num_reserved_slots, arena_priority_level); in create() local
456 a.my_tc_client = control->create_client(a); in create()
458 control->publish_client(a.my_tc_client, constraints); in create()
459 return a; in create()
560 …arena& a = arena::create(thr_control, unsigned(ta.my_max_concurrency), ta.my_num_reserved_slots, p… in initialize() local
562 ta.my_arena.store(&a, std::memory_order_release); in initialize()
564 a.my_numa_binding_observer = construct_binding_observer( in initialize()
565 …static_cast<d1::task_arena*>(&ta), a.my_num_slots, ta.my_numa_id, ta.core_type(), ta.max_threads_p… in initialize()
570 arena* a = ta.my_arena.load(std::memory_order_relaxed); in terminate() local
571 assert_pointer_valid(a); in terminate()
573 a->on_thread_leaving(arena::ref_external); in terminate()
581 arena* a = td->my_arena; in attach() local
584 __TBB_ASSERT(a->my_references > 0, nullptr); in attach()
585 a->my_references += arena::ref_external; in attach()
586 ta.my_num_reserved_slots = a->my_num_reserved_slots; in attach()
587 ta.my_priority = arena_priority(a->my_priority_level); in attach()
588 ta.my_max_concurrency = ta.my_num_reserved_slots + a->my_max_num_workers; in attach()
589 …__TBB_ASSERT(arena::num_arena_slots(ta.my_max_concurrency, ta.my_num_reserved_slots) == a->my_num_… in attach()
590 ta.my_arena.store(a, std::memory_order_release); in attach()
601 arena* a = ta ? in enqueue() local
605 assert_pointer_valid(a, "arena pointer should not be null"); in enqueue()
606 auto* ctx = c ? c : a->my_default_ctx; in enqueue()
609 __TBB_ASSERT(!a->my_default_ctx->is_group_execution_cancelled(), in enqueue()
611 a->enqueue_task(t, *ctx, *td); in enqueue()
741 arena* a = ta.my_arena.load(std::memory_order_relaxed); in execute() local
742 __TBB_ASSERT(a != nullptr, nullptr); in execute()
745 bool same_arena = td->my_arena == a; in execute()
748 index1 = a->occupy_free_slot</*as_worker */false>(*td); in execute()
753 task_group_context_impl::copy_fp_settings(exec_context, *a->my_default_ctx); in execute()
755 delegated_task dt(d, a->my_exit_monitors, wo); in execute()
756 a->enqueue_task( dt, exec_context, *td); in execute()
759 a->my_exit_monitors.prepare_wait(waiter); in execute()
761 a->my_exit_monitors.cancel_wait(waiter); in execute()
764 index2 = a->occupy_free_slot</*as_worker*/false>(*td); in execute()
766 a->my_exit_monitors.cancel_wait(waiter); in execute()
767 nested_arena_context scope(*td, *a, index2 ); in execute()
772 a->my_exit_monitors.commit_wait(waiter); in execute()
777 a->my_exit_monitors.notify_one(); // do not relax! in execute()
791 context_guard.set_ctx(a->my_default_ctx); in execute()
792 nested_arena_context scope(*td, *a, index1); in execute()
807 arena* a = ta.my_arena.load(std::memory_order_relaxed); in wait() local
808 __TBB_ASSERT(a != nullptr, nullptr); in wait()
811 …__TBB_ASSERT(td->my_arena != a || td->my_arena_index == 0, "internal_wait is not supported within … in wait()
812 if (a->my_max_num_workers != 0) { in wait()
813 while (a->num_workers_active() || !a->is_empty()) { in wait()
820 arena* a = nullptr; in max_concurrency() local
822 a = ta->my_arena.load(std::memory_order_relaxed); in max_concurrency()
824 a = td->my_arena; // the current arena if any in max_concurrency()
826 if( a ) { // Get parameters from the arena in max_concurrency()
829 if (a->is_arena_workerless() && a->my_num_reserved_slots == 1) { in max_concurrency()
830 mandatory_worker = a->my_mandatory_concurrency.test() ? 1 : 0; in max_concurrency()
832 return a->my_num_reserved_slots + a->my_max_num_workers + mandatory_worker; in max_concurrency()