863 bool same_arena = s->my_arena ==
my_arena;
864 size_t index1 = s->my_arena_index;
866 index1 =
my_arena->occupy_free_slot<
false>(*s);
869 #if __TBB_USE_OPTIONAL_RTTI 877 internal::delegated_function< graph_funct, void >* deleg_funct =
878 dynamic_cast< internal::delegated_function< graph_funct, void>*
>(&
d);
883 (internal::forward< graph_funct >(deleg_funct->my_func)), 0);
887 concurrent_monitor::thread_context waiter;
888 #if __TBB_TASK_GROUP_CONTEXT 895 root.prefix().ref_count = 2;
897 delegated_task(
d,
my_arena->my_exit_monitors, &root),
901 my_arena->my_exit_monitors.prepare_wait(waiter, (uintptr_t)&
d);
903 my_arena->my_exit_monitors.cancel_wait(waiter);
906 index2 =
my_arena->occupy_free_slot<
false>(*s);
908 my_arena->my_exit_monitors.cancel_wait(waiter);
910 s->local_wait_for_all(root, NULL);
911 #if TBB_USE_EXCEPTIONS 917 my_arena->my_exit_monitors.commit_wait(waiter);
922 my_arena->my_exit_monitors.notify_one();
924 #if TBB_USE_EXCEPTIONS 927 TbbRethrowException(pe);
930 #if __TBB_USE_OPTIONAL_RTTI 936 context_guard_helper<
false> context_guard;
938 #if TBB_USE_EXCEPTIONS 944 #if TBB_USE_EXCEPTIONS 947 context_guard.restore_default();
952 exception_container.register_pending_exception();
954 TbbRethrowException(exception_container.my_exception);
internal::arena * my_arena
NULL if not currently initialized.
A functor that spawns a task.
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
static generic_scheduler * local_scheduler_weak()
internal::tbb_exception_ptr exception_container_type
task_group_context * my_context
default context of the arena
static const size_t out_of_arena
#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
#define __TBB_CONTEXT_ARG(arg1, context)
T __TBB_load_with_acquire(const volatile T &location)
#define __TBB_CONTEXT_ARG1(context)
void __TBB_EXPORTED_METHOD internal_enqueue(task &, intptr_t) const
intptr_t my_version_and_traits
Special settings.
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