--- src/tbb/governor.cpp 2026-04-30 21:25:36.000000000 +0800 +++ src/tbb/governor.cpp 2026-06-25 06:45:09.000000000 +0800 @@ -68,8 +68,10 @@ #endif /* TBB_USE_ASSERT */ void clear_address_waiter_table(); +#ifndef __APPLE__ void global_control_acquire(); void global_control_release(); +#endif //! global_control.cpp contains definition bool remove_and_check_if_empty(d1::global_control& gc); @@ -88,7 +90,9 @@ //------------------------------------------------------------------------ void governor::acquire_resources () { +#ifndef __APPLE__ global_control_acquire(); +#endif #if __TBB_USE_POSIX int status = theTLS.create(auto_terminate); #else @@ -120,7 +124,9 @@ system_topology::destroy(); dynamic_unlink_all(); +#ifndef __APPLE__ global_control_release(); +#endif } rml::tbb_server* governor::create_rml_server ( rml::tbb_client& client ) { --- src/tbb/global_control.cpp 2026-04-30 21:25:36.000000000 +0800 +++ src/tbb/global_control.cpp 2026-06-25 06:40:57.000000000 +0800 @@ -143,6 +143,13 @@ } }; +#ifdef __APPLE__ +static allowed_parallelism_control allowed_parallelism_ctl; +static stack_size_control stack_size_ctl; +static terminate_on_exception_control terminate_on_exception_ctl; +static lifetime_control lifetime_ctl; +static control_storage *controls[] = {&allowed_parallelism_ctl, &stack_size_ctl, &terminate_on_exception_ctl, &lifetime_ctl}; +#else #if __TBB_PREVIEW_PARALLEL_PHASE class alignas(max_nfs_size) leave_policy_control : public control_storage { std::size_t default_value() const override { @@ -172,6 +179,7 @@ ptr = nullptr; } } +#endif void global_control_lock() { for (auto& ctl : controls) {