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:
@@ -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
|
||||||
|
Reference in New Issue
Block a user