]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/thread.h
Provide NSAutoreleasePool instances during initialization
[wxWidgets.git] / include / wx / thread.h
index 6c126b9fbd9d4d80dd4291f6a7128efaf026f07e..401d5f5937df20504467b55cf0ed2d9f1a12f5a9 100644 (file)
@@ -23,7 +23,7 @@
 #if wxUSE_THREADS
 
 // only for wxUSE_THREADS - otherwise we'd get undefined symbols
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "thread.h"
 #endif
 
@@ -32,8 +32,6 @@
     #undef Yield
 #endif
 
-#include "wx/module.h"
-
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
@@ -596,8 +594,13 @@ void WXDLLEXPORT wxMutexGuiLeave();
 #define wxENTER_CRIT_SECT(cs)   (cs).Enter()
 #define wxLEAVE_CRIT_SECT(cs)   (cs).Leave()
 #define wxCRIT_SECT_DECLARE(cs) static wxCriticalSection cs
+#define wxCRIT_SECT_DECLARE_MEMBER(cs) wxCriticalSection cs
 #define wxCRIT_SECT_LOCKER(name, cs)  wxCriticalSectionLocker name(cs)
 
+// function for checking if we're in the main thread which may be used whether
+// wxUSE_THREADS is 0 or 1
+inline bool wxIsMainThread() { return wxThread::IsMain(); }
+
 #else // !wxUSE_THREADS
 
 // no thread support
@@ -609,8 +612,12 @@ inline void WXDLLEXPORT wxMutexGuiLeave() { }
 #define wxENTER_CRIT_SECT(cs)
 #define wxLEAVE_CRIT_SECT(cs)
 #define wxCRIT_SECT_DECLARE(cs)
+#define wxCRIT_SECT_DECLARE_MEMBER(cs)
 #define wxCRIT_SECT_LOCKER(name, cs)
 
+// if there is only one thread, it is always the main one
+inline bool wxIsMainThread() { return true; }
+
 #endif // wxUSE_THREADS/!wxUSE_THREADS
 
 // mark part of code as being a critical section: this macro declares a