Most of our threading is wrapped under tf::, but a few tbb:: calls still leak through. Containing all of it in one place would make it straightforward to swap in taskflow, std::execution, or something else to see how they compare.
| Usage |
Count |
Files |
tbb::parallel_sort |
~15 |
11 |
tbb::parallel_invoke |
~20 |
9 |
tbb::task_group |
~15 |
8 |
tbb::this_task_arena::max_concurrency |
~4 |
4 |
current_thread_index is already behind tf::local_value, local_buffer, local_vector. Will need attention when porting though—same as how these can't cross task arena boundaries today.
Wrappers
tf::parallel_sort(range);
tf::parallel_sort(first, last, comp);
tf::parallel_invoke(f1, f2, ...);
tf::task_group tg;
tg.run([&] { ... });
tg.wait();
tf::max_concurrency();
Most of our threading is wrapped under
tf::, but a fewtbb::calls still leak through. Containing all of it in one place would make it straightforward to swap in taskflow, std::execution, or something else to see how they compare.tbb::parallel_sorttbb::parallel_invoketbb::task_grouptbb::this_task_arena::max_concurrencyWrappers