Version: alpha
FUNCTION | |
---|---|
dmThread::New() | create a new thread |
dmThread::Join() | join thread |
dmThread::Join() | 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)
PARAMETERS
thread_start |
Thread entry function |
stack_size |
Stack size |
arg |
Thread argument |
name |
Thread name |
RETURNS
Thread |
handle |
EXAMPLES
Create a thread#include <dmsdh/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)
PARAMETERS
thread |
Thread to join |
dmThread::Join(thread)
PARAMETERS
thread |
Thread to join |
dmThread::AllocTls()
PARAMETERS
RETURNS
Key |
dmThread::FreeTls(key)
PARAMETERS
key |
Key |
dmThread::SetTlsValue(key,value)
PARAMETERS
key |
Key |
value |
Value |
dmThread::GetTlsValue(key)
PARAMETERS
key |
Key |
dmThread::GetCurrentThread()
PARAMETERS
RETURNS
the |
current thread |
dmThread::SetThreadName(thread,name)
PARAMETERS
thread |
the thread |
name |
the thread name |