13 #ifndef __UT_TASKARENA_H_INCLUDED__
14 #define __UT_TASKARENA_H_INCLUDED__
19 #include <tbb/task_arena.h>
35 static const int automatic = -1;
47 unsigned reserved_for_masters = 1);
59 internalExecute(&UT_TaskArena::callback<F>, &functor);
65 internalExecute(&UT_TaskArena::callbackConst<F>, &functor);
72 template <
typename M,
typename F>
81 template <
typename M,
typename F>
97 tbb::task_arena arena(tbb::task_arena::attach{});
98 arena.enqueue(std::forward<F>(
f));
110 template <
typename F>
111 static void callback(
void *
data)
113 (*
reinterpret_cast<F *
>(
data))();
115 template <
typename F>
116 static void callbackConst(
const void *
data)
118 (*
reinterpret_cast<const F *
>(
data))();
121 void internalExecute(
void (*callback)(
void *),
void *
data);
122 void internalExecute(
void (*callback)(
const void *),
const void *
data);
125 static const size_t SIZEOF_ARENA = 40;
126 uint8 myArena[SIZEOF_ARENA];
129 #endif // __UT_TASKARENA_H_INCLUDED__
static void lockedExecute(M &mutex, const F &functor)
static void enqueue(F &&f)
static void lockedExecute(M &mutex, F &functor)
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled).
static SYS_AtomicInt32 theArenaCount
void execute(const F &functor)