20 #if defined(_MSC_VER) && _MSC_VER >= 1600 22 #define BT_OVERRIDE override 76 #endif // #if BT_THREADSAFE 85 #endif // #if BT_THREADSAFE 95 #endif // #if BT_THREADSAFE 105 virtual void forLoop(
int iBegin,
int iEnd)
const = 0;
116 virtual btScalar sumLoop(
int iBegin,
int iEnd)
const = 0;
128 const char*
getName()
const {
return m_name; }
130 virtual int getMaxNumThreads()
const = 0;
131 virtual int getNumThreads()
const = 0;
132 virtual void setNumThreads(
int numThreads) = 0;
133 virtual void parallelFor(
int iBegin,
int iEnd,
int grainSize,
const btIParallelForBody& body) = 0;
138 virtual void activate();
139 virtual void deactivate();
btITaskScheduler * btGetOpenMPTaskScheduler()
virtual void sleepWorkerThreadsHint()
#define SIMD_FORCE_INLINE
btSpinMutex – lightweight spin-mutex implemented with atomic ops, never puts a thread to sleep becau...
btITaskScheduler * btGetPPLTaskScheduler()
bool btThreadsAreRunning()
virtual ~btITaskScheduler()
btScalar btParallelSum(int iBegin, int iEnd, int grainSize, const btIParallelSumBody &body)
btITaskScheduler * btGetSequentialTaskScheduler()
const unsigned int BT_MAX_THREAD_COUNT
virtual ~btIParallelSumBody()
void btParallelFor(int iBegin, int iEnd, int grainSize, const btIParallelForBody &body)
const char * getName() const
btITaskScheduler * btGetTaskScheduler()
bool btMutexTryLock(btSpinMutex *mutex)
unsigned int btGetCurrentThreadIndex()
void btResetThreadIndexCounter()
btITaskScheduler * btCreateDefaultTaskScheduler()
void btMutexUnlock(btSpinMutex *mutex)
void btMutexLock(btSpinMutex *mutex)
unsigned int m_savedThreadCounter
virtual ~btIParallelForBody()
btITaskScheduler * btGetTBBTaskScheduler()
void btSetTaskScheduler(btITaskScheduler *ts)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...