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;
#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_

View File

@ -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();

View File

@ -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_

View File

@ -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;
};

View File

@ -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
{

View File

@ -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;

View File

@ -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
{

View File

@ -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 *