7#ifndef PXR_BASE_WORK_TBB_DETACHED_TASK_IMPL_H
8#define PXR_BASE_WORK_TBB_DETACHED_TASK_IMPL_H
10#include <tbb/blocked_range.h>
11#include "pxr/base/work/workTBB/dispatcher_impl.h"
12#include "pxr/base/work/api.h"
14#if TBB_INTERFACE_VERSION_MAJOR >= 12
15#include <tbb/task_group.h>
23PXR_NAMESPACE_OPEN_SCOPE
25class WorkImpl_Dispatcher;
28WorkImpl_Dispatcher & WorkTBB_GetDetachedDispatcher();
31void WorkTBB_EnsureDetachedTaskProgress();
36inline void WorkImpl_RunDetachedTask(Fn &&fn){
37 WorkTBB_GetDetachedDispatcher().Run(std::forward<Fn>(fn));
38 WorkTBB_EnsureDetachedTaskProgress();
41PXR_NAMESPACE_CLOSE_SCOPE