diff --git a/include/wx/mac/setup.h b/include/wx/mac/setup.h index bdbcba2aff..3469bdc814 100644 --- a/include/wx/mac/setup.h +++ b/include/wx/mac/setup.h @@ -1,8 +1,8 @@ ///////////////////////////////////////////////////////////////////////////// // Name: setup.h // Purpose: Configuration for the library -// Author: AUTHOR -// Modified by: +// Author: Stefan Csomor +// Modified by: Stefan Csomor // Created: ??/??/98 // RCS-ID: $Id$ // Copyright: (c) AUTHOR @@ -199,7 +199,7 @@ // if enabled, compiles built-in OS independent wxConfig // class and it's file (any platform) and registry (Win) // based implementations -#define wxUSE_THREADS 0 +#define wxUSE_THREADS 1 // support for multithreaded applications: if // 1, compile in thread classes (thread.h) // and make the library thread safe diff --git a/include/wx/thread.h b/include/wx/thread.h index a4c4b465df..d4af63db35 100644 --- a/include/wx/thread.h +++ b/include/wx/thread.h @@ -150,11 +150,11 @@ class WXDLLEXPORT wxCriticalSectionInternal; // 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__) && !defined(__WXMAC__) +#if !defined(__WXMSW__) && !defined(__WXPM__) #define WXCRITICAL_INLINE inline #define wxCRITSECT_IS_MUTEX 1 -#else // MSW || Mac || OS2 +#else // MSW || OS2 #define WXCRITICAL_INLINE #define wxCRITSECT_IS_MUTEX 0 @@ -471,7 +471,7 @@ public: // wxApp then should block all "dangerous" messages extern bool WXDLLEXPORT wxIsWaitingForThread(); #elif defined(__WXMAC__) - extern void WXDLLEXPORT wxMutexGuiLeaveOrEnter(); + extern void WXDLLEXPORT wxMutexGuiLeaveOrEnter(); // returns TRUE if the main thread has GUI lock extern bool WXDLLEXPORT wxGuiOwnedByMainThread(); @@ -482,6 +482,13 @@ public: // return TRUE if the main thread is waiting for some other to terminate: // wxApp then should block all "dangerous" messages extern bool WXDLLEXPORT wxIsWaitingForThread(); + + // implement wxCriticalSection using mutexes + inline wxCriticalSection::wxCriticalSection() { } + inline wxCriticalSection::~wxCriticalSection() { } + + inline void wxCriticalSection::Enter() { (void)m_mutex.Lock(); } + inline void wxCriticalSection::Leave() { (void)m_mutex.Unlock(); } #elif defined(__WXPM__) // 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 diff --git a/include/wx_cw.pch b/include/wx_cw.pch index 8a5a49d142..2544b89085 100644 --- a/include/wx_cw.pch +++ b/include/wx_cw.pch @@ -23,4 +23,9 @@ #pragma once on #undef WX_PRECOMP #define wxUSE_GUI 1 +#define OLDP2C 1 #include "wx/wx_cw_cm.h" +#ifdef __WXMSW__ + #include + #include "wx/msw/winundef.h" +#endif diff --git a/include/wx_cw.pch++ b/include/wx_cw.pch++ index a9f6924473..7228505285 100644 --- a/include/wx_cw.pch++ +++ b/include/wx_cw.pch++ @@ -23,5 +23,6 @@ #pragma once on #define WX_PRECOMP #define wxUSE_GUI 1 +#define OLDP2C 1 #include "wx/wx_cw_cm.h" #include "wx/wxprec.h" \ No newline at end of file diff --git a/include/wx_cw_d.pch b/include/wx_cw_d.pch index a38cd139e5..9aa65032de 100644 --- a/include/wx_cw_d.pch +++ b/include/wx_cw_d.pch @@ -18,6 +18,7 @@ #undef WX_PRECOMP #define __WXDEBUG__ 1 #define wxUSE_GUI 1 +#define OLDP2C 1 #include "wx/wx_cw_cm.h" #ifdef __WXMSW__ #include diff --git a/include/wx_cw_d.pch++ b/include/wx_cw_d.pch++ index cb5643a468..20164b5ab3 100644 --- a/include/wx_cw_d.pch++ +++ b/include/wx_cw_d.pch++ @@ -16,8 +16,7 @@ #define WX_PRECOMP #define __WXDEBUG__ 1 #define wxUSE_GUI 1 - - +#define OLDP2C 1 #include "wx/wx_cw_cm.h" #ifdef WX_PRECOMP #include "wx/wxprec.h" diff --git a/samples/thread/makemac.mcp b/samples/thread/makemac.mcp new file mode 100644 index 0000000000..12218f1b04 Binary files /dev/null and b/samples/thread/makemac.mcp differ