#ifndef PXR_EXTRAS_USD_EXAMPLES_WORK_TASKFLOW_EXAMPLE_THREAD_LIMITS_H
#define PXR_EXTRAS_USD_EXAMPLES_WORK_TASKFLOW_EXAMPLE_THREAD_LIMITS_H
#include <thread>
static int _threadLimit = 0;
inline unsigned
WorkImpl_GetPhysicalConcurrencyLimit()
{
return std::thread::hardware_concurrency();
}
inline void
WorkImpl_InitializeThreading(int threadLimit)
{
return;
}
inline void
WorkImpl_SetConcurrencyLimit(int threadLimit)
{
int numCores = static_cast<int>(std::thread::hardware_concurrency());
if (threadLimit == 1 || threadLimit < -numCores) {
_threadLimit = 1;
} else {
_threadLimit = numCores;
}
}
inline int WorkImpl_GetConcurrencyLimit()
{
return _threadLimit;
}
inline bool
WorkImpl_SupportsGranularThreadLimits()
{
return false;
}
#endif