2020-11-01 17:45:45 -06:00
|
|
|
#include "storm/thread/S_Thread.hpp"
|
2025-03-31 14:19:47 -04:00
|
|
|
#include <bc/Memory.hpp>
|
2020-09-09 00:45:46 -05:00
|
|
|
|
|
|
|
|
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(¶ms->syncObject->m_mutex);
|
2021-08-09 00:13:52 -05:00
|
|
|
params->syncObject->m_value1 = 1;
|
2020-09-09 00:45:46 -05:00
|
|
|
pthread_mutex_unlock(¶ms->syncObject->m_mutex);
|
|
|
|
|
pthread_cond_signal(¶ms->syncObject->m_cond);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SMemFree(threadParam);
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|