Blender  V3.3
Classes | Macros | Functions | Variables
btThreads.cpp File Reference
#include "btThreads.h"
#include "btQuickprof.h"
#include <algorithm>

Go to the source code of this file.

Classes

struct  ThreadsafeCounter
 
class  btTaskSchedulerSequential
 

Macros

#define THREAD_LOCAL_STATIC   static
 
#define BT_DETECT_BAD_THREAD_INDEX   0
 

Functions

unsigned int btGetCurrentThreadIndex ()
 
bool btIsMainThread ()
 
void btResetThreadIndexCounter ()
 
void btPushThreadsAreRunning ()
 
void btPopThreadsAreRunning ()
 
bool btThreadsAreRunning ()
 
void btSetTaskScheduler (btITaskScheduler *ts)
 
btITaskSchedulerbtGetTaskScheduler ()
 
void btParallelFor (int iBegin, int iEnd, int grainSize, const btIParallelForBody &body)
 
btScalar btParallelSum (int iBegin, int iEnd, int grainSize, const btIParallelSumBody &body)
 
btITaskSchedulerbtGetSequentialTaskScheduler ()
 
btITaskSchedulerbtGetOpenMPTaskScheduler ()
 
btITaskSchedulerbtGetTBBTaskScheduler ()
 
btITaskSchedulerbtGetPPLTaskScheduler ()
 

Variables

static btITaskSchedulergBtTaskScheduler =0
 
static int gThreadsRunningCounter = 0
 
static btSpinMutex gThreadsRunningCounterMutex
 
static ThreadsafeCounter gThreadCounter
 

Macro Definition Documentation

◆ BT_DETECT_BAD_THREAD_INDEX

#define BT_DETECT_BAD_THREAD_INDEX   0

Definition at line 274 of file btThreads.cpp.

◆ THREAD_LOCAL_STATIC

#define THREAD_LOCAL_STATIC   static

Definition at line 212 of file btThreads.cpp.

Function Documentation

◆ btGetCurrentThreadIndex()

unsigned int btGetCurrentThreadIndex ( )

◆ btGetOpenMPTaskScheduler()

btITaskScheduler* btGetOpenMPTaskScheduler ( )

Definition at line 762 of file btThreads.cpp.

References NULL.

◆ btGetPPLTaskScheduler()

btITaskScheduler* btGetPPLTaskScheduler ( )

Definition at line 784 of file btThreads.cpp.

References NULL.

◆ btGetSequentialTaskScheduler()

btITaskScheduler* btGetSequentialTaskScheduler ( )

Definition at line 755 of file btThreads.cpp.

◆ btGetTaskScheduler()

btITaskScheduler* btGetTaskScheduler ( )

Definition at line 407 of file btThreads.cpp.

References gBtTaskScheduler.

Referenced by btCollisionDispatcherMt::btCollisionDispatcherMt(), and writeGrainSizes().

◆ btGetTBBTaskScheduler()

btITaskScheduler* btGetTBBTaskScheduler ( )

Definition at line 773 of file btThreads.cpp.

References NULL.

◆ btIsMainThread()

bool btIsMainThread ( )

Definition at line 324 of file btThreads.cpp.

References btGetCurrentThreadIndex().

Referenced by btResetThreadIndexCounter().

◆ btParallelFor()

void btParallelFor ( int  iBegin,
int  iEnd,
int  grainSize,
const btIParallelForBody body 
)

◆ btParallelSum()

btScalar btParallelSum ( int  iBegin,
int  iEnd,
int  grainSize,
const btIParallelSumBody body 
)

◆ btPopThreadsAreRunning()

void btPopThreadsAreRunning ( )

◆ btPushThreadsAreRunning()

void btPushThreadsAreRunning ( )

◆ btResetThreadIndexCounter()

void btResetThreadIndexCounter ( )

Definition at line 329 of file btThreads.cpp.

References btAssert, btIsMainThread(), gThreadCounter, and ThreadsafeCounter::mCounter.

◆ btSetTaskScheduler()

void btSetTaskScheduler ( btITaskScheduler ts)

◆ btThreadsAreRunning()

bool btThreadsAreRunning ( )

Definition at line 381 of file btThreads.cpp.

References gThreadsRunningCounter.

Referenced by btParallelFor(), and btParallelSum().

Variable Documentation

◆ gBtTaskScheduler

btITaskScheduler* gBtTaskScheduler =0
static

◆ gThreadCounter

ThreadsafeCounter gThreadCounter
static

◆ gThreadsRunningCounter

int gThreadsRunningCounter = 0
static

◆ gThreadsRunningCounterMutex

btSpinMutex gThreadsRunningCounterMutex
static

Definition at line 246 of file btThreads.cpp.

Referenced by btPopThreadsAreRunning(), and btPushThreadsAreRunning().