Fix compile failure on systems where pthread_t isn't a pointer, and possibly also systems where it isn't pointer-sized either

This commit is contained in:
elasota
2023-05-21 21:53:18 -04:00
parent 4182a1a107
commit af6d18829e

View File

@@ -13,6 +13,8 @@
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
#include <string> #include <string>
#include <string.h>
#include <stdlib.h>
struct GpSystemServices_X_ThreadStartParams struct GpSystemServices_X_ThreadStartParams
{ {
@@ -52,13 +54,19 @@ void *GpSystemServices_X::CreateThread(ThreadFunc_t threadFunc, void *context)
if (!evt) if (!evt)
return nullptr; return nullptr;
pthread_t *threadPtr = static_cast<pthread_t*>(malloc(sizeof(pthread_t)));
if (!threadPtr)
{
evt->Destroy();
return nullptr;
}
GpSystemServices_X_ThreadStartParams startParams; GpSystemServices_X_ThreadStartParams startParams;
startParams.m_threadContext = context; startParams.m_threadContext = context;
startParams.m_threadFunc = threadFunc; startParams.m_threadFunc = threadFunc;
startParams.m_threadStartEvent = evt; startParams.m_threadStartEvent = evt;
pthread_t thread = nullptr; if (pthread_create(threadPtr, nullptr, StaticStartThread, &startParams) != 0)
if (pthread_create(&thread, nullptr, StaticStartThread, &startParams) != 0)
{ {
evt->Destroy(); evt->Destroy();
return nullptr; return nullptr;
@@ -67,7 +75,7 @@ void *GpSystemServices_X::CreateThread(ThreadFunc_t threadFunc, void *context)
evt->Wait(); evt->Wait();
evt->Destroy(); evt->Destroy();
return thread; return static_cast<void*>(threadPtr);
} }
bool GpSystemServices_X::Beep() const bool GpSystemServices_X::Beep() const