fixed wxSocket::_Wait() for worker threads in an MT program

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9385 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2001-02-19 17:22:50 +00:00
parent 6dc5fd7181
commit 2f10f4238a

View File

@ -51,12 +51,30 @@
// discard buffer
#define MAX_DISCARD_SIZE (10 * 1024)
// what to do within waits
// what to do within waits: in wxBase we don't do anything as we don't have
// the event loop anyhow (for now). In GUI apps we have 2 cases: from the main
// thread itself we have to call wxYield() to let the events (including the
// GUI events and the low-level (not wxWindows) events from GSocket) be
// processed. From another thread it is enough to just call wxThread::Yield()
// which will give away the rest of our time slice: the explanation is that
// the events will be processed by the main thread anyhow, without calling
// wxYield(), but we don't want to eat the CPU time uselessly while sitting
// in the loop waiting for the data
#if wxUSE_GUI
#define PROCESS_EVENTS() wxYield()
#else
#define PROCESS_EVENTS()
#endif
#if wxUSE_THREADS
#define PROCESS_EVENTS() \
{ \
if ( wxThread::IsMain() ) \
wxYield(); \
else \
wxThread::Yield(); \
}
#else // !wxUSE_THREADS
#define PROCESS_EVENTS() wxYield()
#endif // wxUSE_THREADS/!wxUSE_THREADS
#else // !wxUSE_GUI
#define PROCESS_EVENTS()
#endif // wxUSE_GUI/!wxUSE_GUI
// --------------------------------------------------------------------------
// wxWin macros