use wxGetLocalTimeMillis() instead of wxDateTime in wxSocketBase::_Wait(), this allows to use sockets without wxUSE_DATETIME

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-07-16 21:16:03 +00:00
parent 5770bfeb87
commit 4252569b32

View File

@@ -39,7 +39,7 @@
#include "wx/apptrait.h" #include "wx/apptrait.h"
#include "wx/sckaddr.h" #include "wx/sckaddr.h"
#include "wx/datetime.h" #include "wx/stopwatch.h"
// DLL options compatibility check: // DLL options compatibility check:
#include "wx/build.h" #include "wx/build.h"
@@ -680,7 +680,7 @@ bool wxSocketBase::_Wait(long seconds,
wxSocketEventFlags flags) wxSocketEventFlags flags)
{ {
GSocketEventFlags result; GSocketEventFlags result;
long timeout; long timeout; // in ms
// Set this to true to interrupt ongoing waits // Set this to true to interrupt ongoing waits
m_interrupt = false; m_interrupt = false;
@@ -707,8 +707,7 @@ bool wxSocketBase::_Wait(long seconds,
// Do this at least once (important if timeout == 0, when // Do this at least once (important if timeout == 0, when
// we are just polling). Also, if just polling, do not yield. // we are just polling). Also, if just polling, do not yield.
wxDateTime current_time = wxDateTime::UNow(); const wxMilliClock_t time_limit = wxGetLocalTimeMillis() + timeout;
unsigned int time_limit = (current_time.GetTicks() * 1000) + current_time.GetMillisecond() + timeout;
bool done = false; bool done = false;
bool valid_result = false; bool valid_result = false;
@@ -752,8 +751,7 @@ bool wxSocketBase::_Wait(long seconds,
} }
// Wait more? // Wait more?
current_time = wxDateTime::UNow(); long time_left = wxMilliClockToLong(time_limit - wxGetLocalTimeMillis());
int time_left = time_limit - ((current_time.GetTicks() * 1000) + current_time.GetMillisecond());
if ((!timeout) || (time_left <= 0) || (m_interrupt)) if ((!timeout) || (time_left <= 0) || (m_interrupt))
done = true; done = true;
else else