Version: stable
FUNCTION | |
---|---|
dmThread::New() | create a new thread |
dmThread::Join() | join thread |
dmThread::Detach() | detach thread |
dmThread::AllocTls() | allocate thread local storage key |
dmThread::FreeTls() | free thread local storage key |
dmThread::SetTlsValue() | set thread specific data |
dmThread::GetTlsValue() | get thread specific data |
dmThread::GetCurrentThread() | gets the current thread |
dmThread::SetThreadName() | sets the current thread name |
dmThread::New(thread_start,stack_size,arg,name)
Create a new named thread
PARAMETERS
thread_start |
|
Thread entry function |
stack_size |
|
Stack size |
arg |
|
Thread argument |
name |
|
Thread name |
RETURNS
Thread |
handle |
EXAMPLES
Create a thread#include <dmsdk/sdk.h> struct Context { bool m_DoWork; int m_Work; }; static void Worker(void* _ctx) { Context* ctx = (Context*)_ctx; while (ctx->m_DoWork) { ctx->m_Work++; // do work dmTime::Sleep(10*1000); // yield } } int StartThread() { Context ctx; ctx.m_DoWork = true; ctx.m_Work = 0; dmThread::Thread thread = dmThread::New(Worker, 0x80000, (void*)&ctx, "my_thread"); // do other work... // ..eventually stop the thread: ctx.m_DoWork = false; // wait for thread dmThread::Join(thread); printf("work done: %d\n", ctx.m_Work); }
dmThread::Join(thread)
Join thread. Waits for the thread specified by thread to terminate. If that thread has already terminated, then Join() returns immediately. The thread specified by thread must be joinable (see Detach()).
PARAMETERS
thread |
|
Thread to join |
dmThread::Detach(thread)
Detach thread. When a detached thread terminates, its resources are automatically released back to the system without the need for another thread to join with the terminated thread.
PARAMETERS
thread |
|
Thread to detach |
dmThread::AllocTls()
Allocate thread local storage key
PARAMETERS
None
RETURNS
Key |
dmThread::FreeTls(key)
Free thread local storage key
PARAMETERS
key |
|
Key |
dmThread::SetTlsValue(key,value)
Set thread specific data
PARAMETERS
key |
|
Key |
value |
|
Value |
dmThread::GetTlsValue(key)
Get thread specific data
PARAMETERS
key |
|
Key |
dmThread::GetCurrentThread()
Gets the current thread
PARAMETERS
None
RETURNS
the |
current thread |
dmThread::SetThreadName(thread,name)
Sets the current thread name
PARAMETERS
thread |
|
the thread |
name |
|
the thread name |