]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/tls.h
synchronize GTK2 minimum version in docs
[wxWidgets.git] / include / wx / tls.h
index f91368d503672fc04661f85d2aeb5befa75e1bee..6886434c007fa34b71d52d5017348f5bf5b8e502 100644 (file)
 #if !wxUSE_THREADS
     #define wxHAS_COMPILER_TLS
     #define wxTHREAD_SPECIFIC_DECL
 #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.
 // __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
     #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)
 #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()
 
 // ----------------------------------------------------------------------------
 // define wxTLS_TYPE()
@@ -50,7 +54,7 @@
         typedef void (*wxTlsDestructorFunction)(void*);
     }
 
         typedef void (*wxTlsDestructorFunction)(void*);
     }
 
-    #if defined(__WXMSW__)
+    #if defined(__WINDOWS__)
         #include "wx/msw/tls.h"
     #elif defined(__OS2__)
         #include "wx/os2/tls.h"
         #include "wx/msw/tls.h"
     #elif defined(__OS2__)
         #include "wx/os2/tls.h"
     };
 
     #define wxTLS_TYPE(T) wxTlsValue<T>
     };
 
     #define wxTLS_TYPE(T) wxTlsValue<T>
-    #define wxTLS_PTR(var) (var)
+    #define wxTLS_PTR(var) ((var).Get())
     #define wxTLS_VALUE(var) (*(var))
 #endif // wxHAS_COMPILER_TLS/!wxHAS_COMPILER_TLS
 
     #define wxTLS_VALUE(var) (*(var))
 #endif // wxHAS_COMPILER_TLS/!wxHAS_COMPILER_TLS