diff options
author | Cinder <cinder@sdf.org> | 2014-11-19 22:27:36 -0700 |
---|---|---|
committer | Cinder <cinder@sdf.org> | 2014-11-19 22:27:36 -0700 |
commit | 6df6aef62176328c3b0fafa43fd611d4e25ef35c (patch) | |
tree | 055860a356bd100d94fbc5f782c04314d969e740 | |
parent | 5f608c0a23487ae78cdc134b1e685a6c3cd4ec19 (diff) |
OPEN-282 - Define LL_THREAD_LOCAL for our platforms in order to unify TLS support
-rwxr-xr-x | indra/llcommon/llpreprocessor.h | 5 | ||||
-rwxr-xr-x | indra/llcommon/llthread.cpp | 6 | ||||
-rw-r--r-- | indra/llcommon/llthreadlocalstorage.h | 14 |
3 files changed, 8 insertions, 17 deletions
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<typename DERIVED_TYPE> -__declspec(thread) DERIVED_TYPE* LLThreadLocalSingletonPointer<DERIVED_TYPE>::sInstance = NULL; -#else template<typename DERIVED_TYPE> -__thread DERIVED_TYPE* LLThreadLocalSingletonPointer<DERIVED_TYPE>::sInstance = NULL; -#endif +LL_THREAD_LOCAL DERIVED_TYPE* LLThreadLocalSingletonPointer<DERIVED_TYPE>::sInstance = NULL; #endif // LL_LLTHREADLOCALSTORAGE_H |