Blender V4.5
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.

Referenced by btGetCurrentThreadIndex().

Function Documentation

◆ btGetCurrentThreadIndex()

◆ btGetOpenMPTaskScheduler()

btITaskScheduler * btGetOpenMPTaskScheduler ( )

Definition at line 762 of file btThreads.cpp.

References btGetOpenMPTaskScheduler().

Referenced by btGetOpenMPTaskScheduler().

◆ btGetPPLTaskScheduler()

btITaskScheduler * btGetPPLTaskScheduler ( )

Definition at line 784 of file btThreads.cpp.

References btGetPPLTaskScheduler().

Referenced by btGetPPLTaskScheduler().

◆ btGetSequentialTaskScheduler()

btITaskScheduler * btGetSequentialTaskScheduler ( )

Definition at line 755 of file btThreads.cpp.

References btGetSequentialTaskScheduler().

Referenced by btGetSequentialTaskScheduler().

◆ btGetTaskScheduler()

◆ btGetTBBTaskScheduler()

btITaskScheduler * btGetTBBTaskScheduler ( )

Definition at line 773 of file btThreads.cpp.

References btGetTBBTaskScheduler().

Referenced by btGetTBBTaskScheduler().

◆ btIsMainThread()

bool btIsMainThread ( )

Definition at line 324 of file btThreads.cpp.

References btGetCurrentThreadIndex(), and btIsMainThread().

Referenced by btIsMainThread(), and btResetThreadIndexCounter().

◆ btParallelFor()

◆ btParallelSum()

◆ btPopThreadsAreRunning()

void btPopThreadsAreRunning ( )

◆ btPushThreadsAreRunning()

void btPushThreadsAreRunning ( )

◆ btResetThreadIndexCounter()

void btResetThreadIndexCounter ( )

◆ btSetTaskScheduler()

◆ btThreadsAreRunning()

bool btThreadsAreRunning ( )

Definition at line 381 of file btThreads.cpp.

References btThreadsAreRunning(), and gThreadsRunningCounter.

Referenced by btParallelFor(), btParallelSum(), and btThreadsAreRunning().

Variable Documentation

◆ gBtTaskScheduler

btITaskScheduler* gBtTaskScheduler =0
static

◆ gThreadCounter

◆ gThreadsRunningCounter

int gThreadsRunningCounter = 0
static

◆ gThreadsRunningCounterMutex

btSpinMutex gThreadsRunningCounterMutex
static

Definition at line 246 of file btThreads.cpp.

Referenced by btPopThreadsAreRunning(), and btPushThreadsAreRunning().