X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2c5c9c27def1b8fa76fcec01e6c89e719ac13653..d642db66a5efc82d374b813022c72ba88bc50839:/include/wx/tls.h diff --git a/include/wx/tls.h b/include/wx/tls.h index f91368d503..6886434c00 100644 --- a/include/wx/tls.h +++ b/include/wx/tls.h @@ -22,10 +22,13 @@ #if !wxUSE_THREADS #define wxHAS_COMPILER_TLS #define wxTHREAD_SPECIFIC_DECL +// otherwise try to find the compiler-specific way to handle TLS unless +// explicitly disabled by setting wxUSE_COMPILER_TLS to 0 (it is 1 by default). +#elif wxUSE_COMPILER_TLS // __thread keyword is not supported correctly by MinGW, at least in some // configurations, see http://sourceforge.net/support/tracker.php?aid=2837047 // and when in doubt we prefer to not use it at all. -#elif defined(HAVE___THREAD_KEYWORD) && !defined(__MINGW32__) +#if defined(HAVE___THREAD_KEYWORD) && !defined(__MINGW32__) #define wxHAS_COMPILER_TLS #define wxTHREAD_SPECIFIC_DECL __thread // MSVC has its own version which might be supported by some other Windows @@ -33,7 +36,8 @@ #elif wxCHECK_VISUALC_VERSION(7) #define wxHAS_COMPILER_TLS #define wxTHREAD_SPECIFIC_DECL __declspec(thread) -#endif +#endif // compilers +#endif // wxUSE_COMPILER_TLS // ---------------------------------------------------------------------------- // define wxTLS_TYPE() @@ -50,7 +54,7 @@ typedef void (*wxTlsDestructorFunction)(void*); } - #if defined(__WXMSW__) + #if defined(__WINDOWS__) #include "wx/msw/tls.h" #elif defined(__OS2__) #include "wx/os2/tls.h" @@ -132,7 +136,7 @@ }; #define wxTLS_TYPE(T) wxTlsValue - #define wxTLS_PTR(var) (var) + #define wxTLS_PTR(var) ((var).Get()) #define wxTLS_VALUE(var) (*(var)) #endif // wxHAS_COMPILER_TLS/!wxHAS_COMPILER_TLS