867 bool same_arena = s->my_arena ==
my_arena;
868 size_t index1 = s->my_arena_index;
870 index1 =
my_arena->occupy_free_slot<
false>(*s);
873 #if __TBB_USE_OPTIONAL_RTTI 881 internal::delegated_function< graph_funct, void >* deleg_funct =
882 dynamic_cast< internal::delegated_function< graph_funct, void>*
>(&
d);
887 (internal::forward< graph_funct >(deleg_funct->my_func)), 0);
891 concurrent_monitor::thread_context waiter;
892 #if __TBB_TASK_GROUP_CONTEXT 899 root.prefix().ref_count = 2;
901 delegated_task(
d,
my_arena->my_exit_monitors, &root),
905 my_arena->my_exit_monitors.prepare_wait(waiter, (uintptr_t)&
d);
907 my_arena->my_exit_monitors.cancel_wait(waiter);
910 index2 =
my_arena->occupy_free_slot<
false>(*s);
912 my_arena->my_exit_monitors.cancel_wait(waiter);
914 s->local_wait_for_all(root, NULL);
915 #if TBB_USE_EXCEPTIONS 921 my_arena->my_exit_monitors.commit_wait(waiter);
926 my_arena->my_exit_monitors.notify_one();
928 #if TBB_USE_EXCEPTIONS 931 TbbRethrowException(pe);
934 #if __TBB_USE_OPTIONAL_RTTI 940 context_guard_helper<
false> context_guard;
942 #if TBB_USE_EXCEPTIONS 948 #if TBB_USE_EXCEPTIONS 951 context_guard.restore_default();
956 exception_container.register_pending_exception();
958 TbbRethrowException(exception_container.my_exception);
#define __TBB_CONTEXT_ARG(arg1, context)
intptr_t my_version_and_traits
Special settings.
T __TBB_load_with_acquire(const volatile T &location)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d __itt_event ITT_FORMAT __itt_group_mark d void const wchar_t const wchar_t int ITT_FORMAT __itt_group_sync __itt_group_fsync x void const wchar_t int const wchar_t int int ITT_FORMAT __itt_group_sync __itt_group_fsync x void ITT_FORMAT __itt_group_sync __itt_group_fsync p void ITT_FORMAT __itt_group_sync __itt_group_fsync p void size_t ITT_FORMAT lu no args __itt_obj_prop_t __itt_obj_state_t ITT_FORMAT d const char ITT_FORMAT s __itt_frame ITT_FORMAT p const char const char ITT_FORMAT s __itt_counter ITT_FORMAT p __itt_counter unsigned long long ITT_FORMAT lu const wchar_t ITT_FORMAT S __itt_mark_type const wchar_t ITT_FORMAT S __itt_mark_type const char ITT_FORMAT s __itt_mark_type ITT_FORMAT d __itt_caller ITT_FORMAT p __itt_caller ITT_FORMAT p no args const __itt_domain __itt_clock_domain unsigned long long __itt_id ITT_FORMAT lu const __itt_domain __itt_clock_domain unsigned long long __itt_id __itt_id void ITT_FORMAT p const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_clock_domain unsigned long long __itt_id __itt_string_handle __itt_scope scope
internal::arena * my_arena
NULL if not currently initialized.
static const size_t out_of_arena
void __TBB_EXPORTED_METHOD internal_enqueue(task &, intptr_t) const
internal::tbb_exception_ptr exception_container_type
static internal::allocate_root_proxy allocate_root()
Returns proxy for overloaded new that allocates a root task.
void const char const char int ITT_FORMAT __itt_group_sync s
#define __TBB_CONTEXT_ARG1(context)
task_group_context * my_context
default context of the arena
A functor that spawns a task.
static generic_scheduler * local_scheduler_weak()