7 #ifndef PXR_BASE_WORK_TBB_ISOLATING_DISPATCHER_IMPL_H
8 #define PXR_BASE_WORK_TBB_ISOLATING_DISPATCHER_IMPL_H
15 #include <tbb/task_arena.h>
25 #define WORK_IMPL_HAS_ISOLATING_DISPATCHER
37 WorkImpl_IsolatingDispatcher
const &) =
delete;
39 template <
class Callable>
40 inline void Run(Callable &&
c) {
41 _arena->execute([&dispatcher = _dispatcher, &
c](){
42 dispatcher.Run(std::forward<Callable>(
c));
57 tbb::task_arena *_arena;
63 #endif // PXR_BASE_WORK_TBB_ISOLATING_DISPATCHER_IMPL_H
#define PXR_NAMESPACE_OPEN_SCOPE
WORK_API ~WorkImpl_IsolatingDispatcher()
WorkImpl_IsolatingDispatcher & operator=(WorkImpl_IsolatingDispatcher const &)=delete
WORK_API WorkImpl_IsolatingDispatcher()
#define PXR_NAMESPACE_CLOSE_SCOPE
WORK_API void Reset()
Reinitialize context for WorkImpl_Dispatcher if it has one.