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)