diff options
Diffstat (limited to 'emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp')
-rw-r--r-- | emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp b/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp index d8879eb..ef2bebc 100644 --- a/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp +++ b/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp @@ -15,6 +15,10 @@ */ #include "osThread.h" +#include "emugl/common/thread_store.h" + +#include <stdint.h> + namespace osUtils { Thread::Thread() : @@ -55,9 +59,8 @@ Thread::wait(int *exitStatus) return false; } - long long int ret=(long long int)retval; if (exitStatus) { - *exitStatus = (int)ret; + *exitStatus = (int)(uintptr_t)retval; } return true; } @@ -87,7 +90,8 @@ Thread::thread_main(void *p_arg) self->m_exitStatus = ret; pthread_mutex_unlock(&self->m_lock); - return (void*)ret; + ::emugl::ThreadStore::OnThreadExit(); + return (void*)(uintptr_t)ret; } } // of namespace osUtils |