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
This commit is contained in:
Vadim Zeitlin
2011-03-22 17:15:56 +00:00
parent 20ca563279
commit dd1af40c59
8 changed files with 35 additions and 11 deletions

View File

@@ -31,6 +31,7 @@ public:
virtual void AfterChildWaitLoop(void *data) = 0; virtual void AfterChildWaitLoop(void *data) = 0;
#if wxUSE_THREADS
// wxThread helpers // wxThread helpers
// ---------------- // ----------------
@@ -41,6 +42,7 @@ public:
// wait for the handle to be signaled, return WAIT_OBJECT_0 if it is or, in // 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 // the GUI code, WAIT_OBJECT_0 + 1 if a Windows message arrived
virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags) = 0; virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags) = 0;
#endif // wxUSE_THREADS
#ifndef __WXWINCE__ #ifndef __WXWINCE__
@@ -60,9 +62,11 @@ public:
#endif // !__WXWINCE__ #endif // !__WXWINCE__
protected: protected:
#if wxUSE_THREADS
// implementation of WaitForThread() for the console applications which is // 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); WXDWORD DoSimpleWaitForThread(WXHANDLE hThread);
#endif // wxUSE_THREADS
}; };
#endif // _WX_MSW_APPTBASE_H_ #endif // _WX_MSW_APPTBASE_H_

View File

@@ -24,9 +24,11 @@ public:
virtual void AfterChildWaitLoop(void *data); virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER #if wxUSE_TIMER
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
#endif #endif // wxUSE_TIMER
#if wxUSE_THREADS
virtual bool DoMessageFromThreadWait(); virtual bool DoMessageFromThreadWait();
virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags); virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags);
#endif // wxUSE_THREADS
#ifndef __WXWINCE__ #ifndef __WXWINCE__
virtual bool CanUseStderr() { return true; } virtual bool CanUseStderr() { return true; }
virtual bool WriteToStderr(const wxString& text); virtual bool WriteToStderr(const wxString& text);
@@ -43,10 +45,12 @@ public:
virtual void AfterChildWaitLoop(void *data); virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER #if wxUSE_TIMER
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
#endif #endif // wxUSE_TIMER
#if wxUSE_THREADS
virtual bool DoMessageFromThreadWait(); virtual bool DoMessageFromThreadWait();
virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const;
virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags); virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags);
#endif // wxUSE_THREADS
virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const;
#ifndef __WXWINCE__ #ifndef __WXWINCE__
virtual bool CanUseStderr(); virtual bool CanUseStderr();

View File

@@ -31,12 +31,14 @@ public:
virtual void AfterChildWaitLoop(void *data) = 0; virtual void AfterChildWaitLoop(void *data) = 0;
#if wxUSE_THREADS
// wxThread helpers // wxThread helpers
// ---------------- // ----------------
// process a message while waiting for a(nother) thread, should return // process a message while waiting for a(nother) thread, should return
// false if and only if we have to exit the application // false if and only if we have to exit the application
virtual bool DoMessageFromThreadWait() = 0; virtual bool DoMessageFromThreadWait() = 0;
#endif // wxUSE_THREADS
}; };
#endif // _WX_PALMOS_APPTBASE_H_ #endif // _WX_PALMOS_APPTBASE_H_

View File

@@ -30,9 +30,11 @@ public:
virtual void AfterChildWaitLoop(void *data); virtual void AfterChildWaitLoop(void *data);
#if wxUSE_TIMER #if wxUSE_TIMER
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer) { return new wxPalmOSTimerImpl(timer); } virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer) { return new wxPalmOSTimerImpl(timer); }
#endif #endif // wxUSE_TIMER
#if wxUSE_THREADS
virtual bool DoMessageFromThreadWait(); virtual bool DoMessageFromThreadWait();
virtual WXDWORD WaitForThread(WXHANDLE hThread); virtual WXDWORD WaitForThread(WXHANDLE hThread);
#endif // wxUSE_THREADS
}; };
#if wxUSE_GUI #if wxUSE_GUI
@@ -46,8 +48,10 @@ public:
#if wxUSE_TIMER #if wxUSE_TIMER
// there is no wxTimer support yet // there is no wxTimer support yet
virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer);
#endif #endif // wxUSE_TIMER
#if wxUSE_THREADS
virtual bool DoMessageFromThreadWait(); virtual bool DoMessageFromThreadWait();
#endif // wxUSE_THREADS
virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const; virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const;
}; };

View File

@@ -219,6 +219,7 @@ void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig)
delete data; delete data;
} }
#if wxUSE_THREADS
bool wxGUIAppTraits::DoMessageFromThreadWait() bool wxGUIAppTraits::DoMessageFromThreadWait()
{ {
// we should return false only if the app should exit, i.e. only if // 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 QS_ALLPOSTMESSAGE
); );
} }
#endif // wxUSE_THREADS
wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const
{ {

View File

@@ -43,10 +43,12 @@
// wxAppTraits implementation // wxAppTraits implementation
// ============================================================================ // ============================================================================
#if wxUSE_THREADS
WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread) WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
{ {
return ::WaitForSingleObject((HANDLE)hThread, INFINITE); return ::WaitForSingleObject((HANDLE)hThread, INFINITE);
} }
#endif // wxUSE_THREADS
// ============================================================================ // ============================================================================
// wxConsoleAppTraits implementation // wxConsoleAppTraits implementation
@@ -63,12 +65,19 @@ void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data))
// nothing to do here // nothing to do here
} }
#if wxUSE_THREADS
bool wxConsoleAppTraits::DoMessageFromThreadWait() bool wxConsoleAppTraits::DoMessageFromThreadWait()
{ {
// nothing to process here // nothing to process here
return true; return true;
} }
WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread, int WXUNUSED(flags))
{
return DoSimpleWaitForThread(hThread);
}
#endif // wxUSE_THREADS
#if wxUSE_TIMER #if wxUSE_TIMER
wxTimerImpl *wxConsoleAppTraits::CreateTimerImpl(wxTimer *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) bool wxConsoleAppTraits::WriteToStderr(const wxString& text)
{ {
return wxFprintf(stderr, "%s", text) != -1; return wxFprintf(stderr, "%s", text) != -1;

View File

@@ -104,10 +104,12 @@ void wxGUIAppTraits::AfterChildWaitLoop(void *dataOrig)
{ {
} }
#if wxUSE_THREADS
bool wxGUIAppTraits::DoMessageFromThreadWait() bool wxGUIAppTraits::DoMessageFromThreadWait()
{ {
return false; return false;
} }
#endif // wxUSE_THREADS
wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const
{ {

View File

@@ -44,6 +44,7 @@ void wxConsoleAppTraits::AfterChildWaitLoop(void * WXUNUSED(data))
{ {
} }
#if wxUSE_THREADS
bool wxConsoleAppTraits::DoMessageFromThreadWait() bool wxConsoleAppTraits::DoMessageFromThreadWait()
{ {
return true; return true;
@@ -54,6 +55,7 @@ WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread)
// TODO // TODO
return 0; return 0;
} }
#endif // wxUSE_THREADS
#if wxUSE_CONSOLE_EVENTLOOP #if wxUSE_CONSOLE_EVENTLOOP
wxEventLoopBase * wxEventLoopBase *