History log of /oneTBB/include/tbb/collaborative_call_once.h (Results 1 – 1 of 1)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v2021.12.0-rc1, v2021.4.1, v2021.11.0, v2021.2.4, v2021.11.0-rc1, v2021.11.0-src-rc1, v2021.2.3, v2021.10.0, v2021.10.0-rc1, v2020.3.3, v2021.2.2, v2021.9.0, v2021.2.1, v2021.9.0-rc1, v2020.3.2, v2021.8.0, v2021.8.0-rc1, v2020.3.1, v2021.7.0, v2021.7.0-rc1, v2021.6.0, v2021.6.0-rc1, v2021.5.0, v2021.5.0-rc2, v2021.5.0-rc1, v2021.4.0, v2021.4.0-rc1, v2021.3.0
# bf1f2ab6 02-Jun-2021 Ilya Isaev <[email protected]>

Add collaborative_call_once algorithm (#397)

collaborative_call_once is a function similar to std::call_once but allows waiting threads to join oneTBB parallel construction called inside the initial

Add collaborative_call_once algorithm (#397)

collaborative_call_once is a function similar to std::call_once but allows waiting threads to join oneTBB parallel construction called inside the initializing functor. The semantics of exceptions is also similar to std::call_once: whenever the exception is thrown, it is rethrown on the initializing thread and this or other thread can try to call initializing functor again until it is completed without an exception.

This pull request integrates #357. It is reworked to avoid dynamic memory allocation and fit the state into one word (see state machine in #267). In cooperation with @BenFrantzDale @HenryHeffanFormlabs

Signed-off-by: Ilya Isaev <[email protected]>

Co-authored-by: Alex <[email protected]>

show more ...