From dd1af40c598c00d74c3c494a025c8dac773bb7da Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 22 Mar 2011 17:15:56 +0000 Subject: [PATCH] Add wxUSE_THREADS checks around wxMSW functions dealing with threads. This removes the code unneeded in wxUSE_THREADS==0 build and also fixes compilation of wxGUIAppTraits::WaitForThread() which didn't compile any more with wxUSE_THREADS==0 since r67185. Closes #13050. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/apptbase.h | 6 +++++- include/wx/msw/apptrait.h | 10 +++++++--- include/wx/palmos/apptbase.h | 2 ++ include/wx/palmos/apptrait.h | 8 ++++++-- src/msw/app.cpp | 2 ++ src/msw/basemsw.cpp | 14 +++++++++----- src/palmos/app.cpp | 2 ++ src/palmos/base.cpp | 2 ++ 8 files changed, 35 insertions(+), 11 deletions(-) diff --git a/include/wx/msw/apptbase.h b/include/wx/msw/apptbase.h index 3667418071..9e38a61d11 100644 --- a/include/wx/msw/apptbase.h +++ b/include/wx/msw/apptbase.h @@ -31,6 +31,7 @@ public: virtual void AfterChildWaitLoop(void *data) = 0; +#if wxUSE_THREADS // wxThread helpers // ---------------- @@ -41,6 +42,7 @@ public: // wait for the handle to be signaled, return WAIT_OBJECT_0 if it is or, in // the GUI code, WAIT_OBJECT_0 + 1 if a Windows message arrived virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags) = 0; +#endif // wxUSE_THREADS #ifndef __WXWINCE__ @@ -60,9 +62,11 @@ public: #endif // !__WXWINCE__ protected: +#if wxUSE_THREADS // implementation of WaitForThread() for the console applications which is - // also used by the GUI code if it doesn't [yet|already} dispatch events + // also used by the GUI code if it doesn't [yet|already] dispatch events WXDWORD DoSimpleWaitForThread(WXHANDLE hThread); +#endif // wxUSE_THREADS }; #endif // _WX_MSW_APPTBASE_H_ diff --git a/include/wx/msw/apptrait.h b/include/wx/msw/apptrait.h index fff22eb0a2..75972e3bfa 100644 --- a/include/wx/msw/apptrait.h +++ b/include/wx/msw/apptrait.h @@ -24,9 +24,11 @@ public: virtual void AfterChildWaitLoop(void *data); #if wxUSE_TIMER virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); -#endif +#endif // wxUSE_TIMER +#if wxUSE_THREADS virtual bool DoMessageFromThreadWait(); virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags); +#endif // wxUSE_THREADS #ifndef __WXWINCE__ virtual bool CanUseStderr() { return true; } virtual bool WriteToStderr(const wxString& text); @@ -43,10 +45,12 @@ public: virtual void AfterChildWaitLoop(void *data); #if wxUSE_TIMER virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); -#endif +#endif // wxUSE_TIMER +#if wxUSE_THREADS virtual bool DoMessageFromThreadWait(); - virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const; virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags); +#endif // wxUSE_THREADS + virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const; #ifndef __WXWINCE__ virtual bool CanUseStderr(); diff --git a/include/wx/palmos/apptbase.h b/include/wx/palmos/apptbase.h index 07a8253cd8..8b1a6af5d7 100644 --- a/include/wx/palmos/apptbase.h +++ b/include/wx/palmos/apptbase.h @@ -31,12 +31,14 @@ public: virtual void AfterChildWaitLoop(void *data) = 0; +#if wxUSE_THREADS // wxThread helpers // ---------------- // process a message while waiting for a(nother) thread, should return // false if and only if we have to exit the application virtual bool DoMessageFromThreadWait() = 0; +#endif // wxUSE_THREADS }; #endif // _WX_PALMOS_APPTBASE_H_ diff --git a/include/wx/palmos/apptrait.h b/include/wx/palmos/apptrait.h index 311514fe3c..998649ad6a 100644 --- a/include/wx/palmos/apptrait.h +++ b/include/wx/palmos/apptrait.h @@ -30,9 +30,11 @@ public: virtual void AfterChildWaitLoop(void *data); #if wxUSE_TIMER virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer) { return new wxPalmOSTimerImpl(timer); } -#endif +#endif // wxUSE_TIMER +#if wxUSE_THREADS virtual bool DoMessageFromThreadWait(); virtual WXDWORD WaitForThread(WXHANDLE hThread); +#endif // wxUSE_THREADS }; #if wxUSE_GUI @@ -46,8 +48,10 @@ public: #if wxUSE_TIMER // there is no wxTimer support yet virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); -#endif +#endif // wxUSE_TIMER +#if wxUSE_THREADS virtual bool DoMessageFromThreadWait(); +#endif // wxUSE_THREADS virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const; }; diff --git a/src/msw/app.cpp b/src/msw/app.cpp index 324dd87457..8df236020f 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -219,6 +219,7 @@ void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig) delete data; } +#if wxUSE_THREADS bool wxGUIAppTraits::DoMessageFromThreadWait() { // we should return false only if the app should exit, i.e. only if @@ -258,6 +259,7 @@ DWORD wxGUIAppTraits::WaitForThread(WXHANDLE hThread, int flags) QS_ALLPOSTMESSAGE ); } +#endif // wxUSE_THREADS wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const { diff --git a/src/msw/basemsw.cpp b/src/msw/basemsw.cpp index 91597dcb5f..67ab1674a6 100644 --- a/src/msw/basemsw.cpp +++ b/src/msw/basemsw.cpp @@ -43,10 +43,12 @@ // wxAppTraits implementation // ============================================================================ +#if wxUSE_THREADS WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread) { return ::WaitForSingleObject((HANDLE)hThread, INFINITE); } +#endif // wxUSE_THREADS // ============================================================================ // wxConsoleAppTraits implementation @@ -63,12 +65,19 @@ void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data)) // nothing to do here } +#if wxUSE_THREADS bool wxConsoleAppTraits::DoMessageFromThreadWait() { // nothing to process here return true; } +WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread, int WXUNUSED(flags)) +{ + return DoSimpleWaitForThread(hThread); +} +#endif // wxUSE_THREADS + #if wxUSE_TIMER wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *timer) @@ -88,11 +97,6 @@ wxEventLoopBase *wxConsoleAppTraits::CreateEventLoop() } -WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread, int WXUNUSED(flags)) -{ - return DoSimpleWaitForThread(hThread); -} - bool wxConsoleAppTraits::WriteToStderr(const wxString& text) { return wxFprintf(stderr, "%s", text) != -1; diff --git a/src/palmos/app.cpp b/src/palmos/app.cpp index 8ff97b1088..5e78e97f62 100644 --- a/src/palmos/app.cpp +++ b/src/palmos/app.cpp @@ -104,10 +104,12 @@ void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig) { } +#if wxUSE_THREADS bool wxGUIAppTraits::DoMessageFromThreadWait() { return false; } +#endif // wxUSE_THREADS wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const { diff --git a/src/palmos/base.cpp b/src/palmos/base.cpp index 2feeb27b12..5792e14937 100644 --- a/src/palmos/base.cpp +++ b/src/palmos/base.cpp @@ -44,6 +44,7 @@ void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data)) { } +#if wxUSE_THREADS bool wxConsoleAppTraits::DoMessageFromThreadWait() { return true; @@ -54,6 +55,7 @@ WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread) // TODO return 0; } +#endif // wxUSE_THREADS #if wxUSE_CONSOLE_EVENTLOOP wxEventLoopBase * -- 2.45.2