TuttleOFX
1
|
OFX suite that provides simple SMP style multi-processing. More...
#include <ofxMultiThread.h>
Data Fields | |
OfxStatus(* | multiThread )(OfxThreadFunctionV1 func, const unsigned int nThreads, void *customArg) |
Function to spawn SMP threads. | |
OfxStatus(* | multiThreadNumCPUs )(unsigned int *const nCPUs) |
Function which indicates the number of CPUs available for SMP processing. | |
OfxStatus(* | multiThreadIndex )(unsigned int *const threadIndex) |
Function which indicates the index of the current thread. | |
int(* | multiThreadIsSpawnedThread )(void) |
Function to enquire if the calling thread was spawned by multiThread. | |
OfxStatus(* | mutexCreate )(OfxMutexHandle *mutex, const int lockCount) |
Create a mutex. | |
OfxStatus(* | mutexDestroy )(OfxMutexHandle mutex) |
Destroy a mutex. | |
OfxStatus(* | mutexLock )(OfxMutexHandle mutex) |
Blocking lock on the mutex. | |
OfxStatus(* | mutexUnLock )(OfxMutexHandle mutex) |
Unlock the mutex. | |
OfxStatus(* | mutexTryLock )(OfxMutexHandle mutex) |
Non blocking attempt to lock the mutex. |
OFX suite that provides simple SMP style multi-processing.
Definition at line 65 of file ofxMultiThread.h.
OfxStatus( * OfxMultiThreadSuiteV1::multiThread)(OfxThreadFunctionV1 func, const unsigned int nThreads, void *customArg) |
Function to spawn SMP threads.
This function will spawn nThreads separate threads of computation (typically one per CPU) to allow something to perform symmetric multi processing. Each thread will call 'func' passing in the index of the thread and the number of threads actually launched.
multiThread will not return until all the spawned threads have returned. It is up to the host how it waits for all the threads to return (busy wait, blocking, whatever).
nThreads can be more than the value returned by multiThreadNumCPUs, however the threads will be limitted to the number of CPUs returned by multiThreadNumCPUs.
This function cannot be called recursively.
Definition at line 91 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::Processor::multiThread().
OfxStatus( * OfxMultiThreadSuiteV1::multiThreadIndex)(unsigned int *const threadIndex) |
Function which indicates the index of the current thread.
This function returns the thread index, which is the same as the threadIndex argument passed to the OfxThreadFunctionV1.
If there are no threads currently spawned, then this function will set threadIndex to 0
Definition at line 119 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::getThreadIndex().
int( * OfxMultiThreadSuiteV1::multiThreadIsSpawnedThread)(void) |
Function to enquire if the calling thread was spawned by multiThread.
Definition at line 127 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::isSpawnedThread().
OfxStatus( * OfxMultiThreadSuiteV1::multiThreadNumCPUs)(unsigned int *const nCPUs) |
Function which indicates the number of CPUs available for SMP processing.
This value may be less than the actual number of CPUs on a machine, as the host may reserve other CPUs for itself.
Definition at line 105 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::getNumCPUs().
OfxStatus( * OfxMultiThreadSuiteV1::mutexCreate)(OfxMutexHandle *mutex, const int lockCount) |
Create a mutex.
Creates a new mutex with lockCount locks on the mutex intially set.
Definition at line 139 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::Mutex::Mutex().
Destroy a mutex.
Destroys a mutex intially created by mutexCreate.
Definition at line 149 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::Mutex::~Mutex().
Blocking lock on the mutex.
This trys to lock a mutex and blocks the thread it is in until the lock suceeds.
A sucessful lock causes the mutex's lock count to be increased by one and to block any other calls to lock the mutex until it is unlocked.
Definition at line 161 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::Mutex::lock().
Non blocking attempt to lock the mutex.
This attempts to lock a mutex, if it cannot, it returns and says so, rather than blocking.
A sucessful lock causes the mutex's lock count to be increased by one, if the lock did not suceed, the call returns immediately and the lock count remains unchanged.
Definition at line 184 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::Mutex::tryLock().
Unlock the mutex.
This unlocks a mutex. Unlocking a mutex decreases its lock count by one.
Definition at line 171 of file ofxMultiThread.h.
Referenced by OFX::MultiThread::Mutex::unlock().