From da5ce6ef356aa6f83556d9ad5387ac473f3a1fa0 Mon Sep 17 00:00:00 2001 From: meepingsnesroms Date: Thu, 18 Jan 2018 10:35:58 -0800 Subject: [PATCH] Fix writing to local thread pointer instead of actual thread. --- libretro-common/rthreads/ctr_pthread.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libretro-common/rthreads/ctr_pthread.h b/libretro-common/rthreads/ctr_pthread.h index 14e321344f..6598267d9f 100644 --- a/libretro-common/rthreads/ctr_pthread.h +++ b/libretro-common/rthreads/ctr_pthread.h @@ -40,9 +40,9 @@ typedef LightEvent pthread_cond_t; typedef int pthread_condattr_t; /* libctru threads return void but pthreads return void pointer */ -bool mutex_inited = false; -LightLock safe_double_thread_launch; -void *(*start_routine_jump)(void*); +static bool mutex_inited = false; +static LightLock safe_double_thread_launch; +static void *(*start_routine_jump)(void*); static void ctr_thread_launcher(void* data) { @@ -66,12 +66,13 @@ static INLINE int pthread_create(pthread_t *thread, s32 prio = 0; svcGetThreadPriority(&prio, CUR_THREAD_HANDLE); start_routine_jump = start_routine; - thread = threadCreate(ctr_thread_launcher, arg, STACKSIZE, prio - 1, -1/*No affinity, use any CPU*/, false); - if (thread == NULL) + Thread new_ctr_thread = threadCreate(ctr_thread_launcher, arg, STACKSIZE, prio - 1, -1/*No affinity, use any CPU*/, false); + if (new_ctr_thread == NULL) { LightLock_Unlock(&safe_double_thread_launch); return EAGAIN; } + *thread = new_ctr_thread; return 0; }