]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/thread.h
added fix for MSL under Win32 (by Steve Hartwell)
[wxWidgets.git] / include / wx / thread.h
index 543f16cedaf9620d56d3206f4b50e1d142e05de3..1e7d9f215e3ed2e4694bea563d368ae652b7ddbc 100644 (file)
@@ -23,7 +23,7 @@
 #if wxUSE_THREADS
 
 // only for wxUSE_THREADS - otherwise we'd get undefined symbols
-#if defined(__GNUG__) && !defined(__APPLE__)
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "thread.h"
 #endif
 
@@ -209,11 +209,11 @@ private:
 
 // in order to avoid any overhead under platforms where critical sections are
 // just mutexes make all wxCriticalSection class functions inline
-#if !defined(__WXMSW__) && !defined(__WXPM__)
+#if !defined(__WXMSW__)
     #define wxCRITSECT_IS_MUTEX 1
 
     #define wxCRITSECT_INLINE inline
-#else // MSW || OS2
+#else // MSW
     #define wxCRITSECT_IS_MUTEX 0
 
     #define wxCRITSECT_INLINE
@@ -249,7 +249,11 @@ private:
     // finally, we need this typedef instead of declaring m_buffer directly
     // because otherwise the assert mentioned above wouldn't compile with some
     // compilers (notably CodeWarrior 8)
+#ifdef __WIN64__
+    typedef char wxCritSectBuffer[40];
+#else // __WIN32__
     typedef char wxCritSectBuffer[24];
+#endif
     union
     {
         unsigned long m_dummy1;
@@ -257,9 +261,7 @@ private:
 
         wxCritSectBuffer m_buffer;
     };
-#else
-    // nothing for OS/2
-#endif // Unix/Win32/OS2
+#endif // Unix&OS2/Win32
 
     DECLARE_NO_COPY_CLASS(wxCriticalSection)
 };
@@ -734,7 +736,7 @@ public:
 
 #if wxUSE_THREADS
 
-#if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXPM__)
+#if defined(__WXMSW__) || defined(__WXMAC__) || defined(__WXPM__) || defined(__EMX__)
     // unlock GUI if there are threads waiting for and lock it back when
     // there are no more of them - should be called periodically by the main
     // thread