13 #ifndef __UT_TaskExclusive__
14 #define __UT_TaskExclusive__
19 #include <oneapi/tbb/collaborative_call_once.h>
87 oneapi::tbb::collaborative_call_once(
102 if (!myIsDone.
load())
105 myIsDone.
store(
true);
114 myCollaborativeFlag =
115 UTmakeUnique<oneapi::tbb::collaborative_once_flag>();
116 myIsDone.
store(
false);
124 return myIsDone.
load();
void store(T val, SYS_MemoryOrder order=SYS_MEMORY_ORDER_SEQ_CST)
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
T load(SYS_MemoryOrder order=SYS_MEMORY_ORDER_SEQ_CST) const
void executeNoThread(T &func)