OGRE 2.1
Object-Oriented Graphics Rendering Engine
|
#include <OgreThreads.h>
Static Public Member Functions | |
static ThreadHandlePtr | CreateThread (THREAD_ENTRY_POINT entryPoint, size_t threadIdx, void *param) |
Creates and executes a new thread. | |
static bool | CreateTls (TlsHandle *outTls) |
Allocates a Thread Local Storage handle to use. | |
static void | DestroyTls (TlsHandle tlsHandle) |
Destroys a Thread Local Storage handle created with CreateTls. | |
static void * | GetTls (TlsHandle tlsHandle) |
static void | SetTls (TlsHandle tlsHandle, void *value) |
static void | Sleep (uint32 milliseconds) |
Sleeps for a minimum of the specified time of milliseconds. | |
static void | WaitForThreads (const ThreadHandleVec &threadHandles) |
static void | WaitForThreads (size_t numThreadHandles, const ThreadHandlePtr *threadHandles) |
Waits until all threads are finished. | |
|
static |
Creates and executes a new thread.
unsigned long myOwnThread( ThreadHandle *ownThreadHandle ) { Should print "Hello from thread 50" printf( "Hello from thread %i", ownThreadHandle.getThreadIdx() ); return 0; } THREAD_DECLARE( myOwnThread );
int main() { ThreadHandle handle = CreateThread( THREAD_GET( myOwnThread ), 50, 0 ); WaitForThreads( 1, handle ); return 0; }
It is not possible to retrieve the return value of the function because it's not portable (and trying to emulate it induces to easy-to-cause memory leaks; as we're dealing with C functions + potential race conditions, not C++)
entryPoint | Function name of the entry point. VERY IMPORTANT: The entry point must be provided by THREAD_GET. Do not use a function directly, otherwise there will be memory leaks! |
threadIdx | Optional index for this thread (ie. when you have many worker threads to work on a section of data. |
param | Optional argument to be passed. |
Allocates a Thread Local Storage handle to use.
outTls | [out] Handle to TLS. On failure this handle is set to OGRE_TLS_INVALID_HANDLE |
Destroys a Thread Local Storage handle created with CreateTls.
tlsHandle | Handle to destroy |
Sleeps for a minimum of the specified time of milliseconds.
Actual time spent sleeping may vary widely depending on OS and other variables. Do not feed 0.
|
static |
|
static |
Waits until all threads are finished.
numThreadInfos | Number of ThreadHandle passed in the array as 'threadHandles' |
threadHandles | Array of numThreadHandles or more ThreadHandle |