From 6df6aef62176328c3b0fafa43fd611d4e25ef35c Mon Sep 17 00:00:00 2001 From: Cinder Date: Wed, 19 Nov 2014 22:27:36 -0700 Subject: OPEN-282 - Define LL_THREAD_LOCAL for our platforms in order to unify TLS support --- indra/llcommon/llpreprocessor.h | 5 +++++ indra/llcommon/llthread.cpp | 6 +----- indra/llcommon/llthreadlocalstorage.h | 14 ++------------ 3 files changed, 8 insertions(+), 17 deletions(-) (limited to 'indra/llcommon') diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h index 309165da7f..2c4bcc91f6 100755 --- a/indra/llcommon/llpreprocessor.h +++ b/indra/llcommon/llpreprocessor.h @@ -101,6 +101,11 @@ #endif +#if LL_WINDOWS +# define LL_THREAD_LOCAL __declspec(thread) +#else +# define LL_THREAD_LOCAL __thread +#endif // Static linking with apr on windows needs to be declared. #if LL_WINDOWS && !LL_COMMON_LINK_SHARED diff --git a/indra/llcommon/llthread.cpp b/indra/llcommon/llthread.cpp index 22e8179b6c..c3f235c6ee 100755 --- a/indra/llcommon/llthread.cpp +++ b/indra/llcommon/llthread.cpp @@ -92,11 +92,7 @@ void set_thread_name( DWORD dwThreadID, const char* threadName) // //---------------------------------------------------------------------------- -#if LL_WINDOWS -U32 __declspec(thread) sThreadID = 0; -#else -U32 __thread sThreadID = 0; -#endif +U32 LL_THREAD_LOCAL sThreadID = 0; U32 LLThread::sIDIter = 0; diff --git a/indra/llcommon/llthreadlocalstorage.h b/indra/llcommon/llthreadlocalstorage.h index da648902aa..3b5786023f 100644 --- a/indra/llcommon/llthreadlocalstorage.h +++ b/indra/llcommon/llthreadlocalstorage.h @@ -139,20 +139,10 @@ public: } private: - -#if LL_WINDOWS - static __declspec(thread) DERIVED_TYPE* sInstance; -#else - static __thread DERIVED_TYPE* sInstance; -#endif + static LL_THREAD_LOCAL DERIVED_TYPE* sInstance; }; -#if LL_WINDOWS -template -__declspec(thread) DERIVED_TYPE* LLThreadLocalSingletonPointer::sInstance = NULL; -#else template -__thread DERIVED_TYPE* LLThreadLocalSingletonPointer::sInstance = NULL; -#endif +LL_THREAD_LOCAL DERIVED_TYPE* LLThreadLocalSingletonPointer::sInstance = NULL; #endif // LL_LLTHREADLOCALSTORAGE_H -- cgit v1.2.3