feat(thread): add thread functions

This commit is contained in:
fallenoak 2020-09-09 00:45:46 -05:00
parent d0487caba3
commit 266bdc7737
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
16 changed files with 523 additions and 0 deletions

View file

@ -0,0 +1,43 @@
#include "thread/S_Thread.hpp"
#include "Memory.hpp"
uint32_t S_Thread::s_SLaunchThread(void* threadParam) {
// TODO
// SClearFP(1);
auto params = static_cast<SThreadParmBlock*>(threadParam);
// TODO
// S_Thread::s_threadCrit.Enter();
// TODO
// - something involving pthread_self()
// TODO
// S_Thread::s_threadCrit.Leave();
// TODO
// SErrAddFrameText("Calling thread proc %lx\n", params->threadProc);
params->threadProc(params->threadParam);
// TODO
// S_Thread::s_threadCrit.Enter();
// TODO
// - remove tracking in S_Thread::s_threads
// - decrement num threads
// TODO
// S_Thread::s_threadCrit.Leave();
if (params->syncObject) {
pthread_mutex_lock(&params->syncObject->m_mutex);
params->syncObject->m_value = 1;
pthread_mutex_unlock(&params->syncObject->m_mutex);
pthread_cond_signal(&params->syncObject->m_cond);
}
SMemFree(threadParam);
return 0;
}