Files
libsst/ZUtil/ZConcurrency.cpp
2026-04-03 00:22:39 -05:00

51 lines
1.0 KiB
C++

#include <ZUtil/ZConcurrency.hpp>
#include <SST/SST_Concurrency.h>
ZThreadContext ZConcurrency::CreateThread(int(*_func)(void*), void *_arg)
{
ZThreadContext context;
context.Thread = SST_Concurrency_CreateThread(_func, _arg);
//TODO - this doesn't install the running thread id, just this current thread id
//bleargh
//context.ThreadId = SST_Concurrency_GetThreadId();
return context;
}
void ZConcurrency::DestroyThread(ZThreadContext& _context)
{
SST_Concurrency_DestroyThread(_context.Thread);
_context.Thread = NULL;
_context.ThreadId = 0;
_context.ThreadExitStatus = 0;
}
void ZConcurrency::SleepThread(uint32_t _ms)
{
SST_Concurrency_SleepThread(_ms);
}
uint32_t ZConcurrency::GetThreadId()
{
return SST_Concurrency_GetThreadId();
}
uint64_t ZConcurrency::GetTicks()
{
return SST_Concurrency_GetTicks();
}
bool ZConcurrency::WaitThread(ZThreadContext& _context)
{
return SST_Concurrency_WaitThread(_context.Thread, &_context.ThreadExitStatus) != 0;
}
void ZConcurrency::YieldThread()
{
SST_Concurrency_YieldThread();
}