diff --git a/src/thread/SDL_systhread.h b/src/thread/SDL_systhread.h index 738ea27b0..36898f389 100644 --- a/src/thread/SDL_systhread.h +++ b/src/thread/SDL_systhread.h @@ -26,6 +26,7 @@ #define _SDL_systhread_h #include "SDL_thread.h" +#include "SDL_thread_c.h" /* This function creates a thread, passing args to SDL_RunThread(), saves a system-dependent thread id in thread->id, and returns 0 diff --git a/src/thread/SDL_thread.c b/src/thread/SDL_thread.c index 5eaed0c0c..4b070dadc 100644 --- a/src/thread/SDL_thread.c +++ b/src/thread/SDL_thread.c @@ -125,6 +125,7 @@ SDL_Generic_GetTLSData() SDL_TLSEntry *entry; SDL_TLSData *storage = NULL; +#if !SDL_THREADS_DISABLED if (!SDL_generic_TLS_mutex) { static SDL_SpinLock tls_lock; SDL_AtomicLock(&tls_lock); @@ -139,6 +140,7 @@ SDL_Generic_GetTLSData() } SDL_AtomicUnlock(&tls_lock); } +#endif /* SDL_THREADS_DISABLED */ SDL_MemoryBarrierAcquire(); SDL_LockMutex(SDL_generic_TLS_mutex); @@ -148,7 +150,9 @@ SDL_Generic_GetTLSData() break; } } +#if !SDL_THREADS_DISABLED SDL_UnlockMutex(SDL_generic_TLS_mutex); +#endif return storage; } diff --git a/src/thread/SDL_thread_c.h b/src/thread/SDL_thread_c.h index 1971ded24..c7b063e07 100644 --- a/src/thread/SDL_thread_c.h +++ b/src/thread/SDL_thread_c.h @@ -23,6 +23,8 @@ #ifndef _SDL_thread_c_h #define _SDL_thread_c_h +#include "SDL_thread.h" + /* Need the definitions of SYS_ThreadHandle */ #if SDL_THREADS_DISABLED #include "generic/SDL_systhread_c.h"