faster resync after suspend

This commit is contained in:
badaix 2015-08-30 13:21:32 +02:00
parent 42232a35aa
commit 274f7d3475

View file

@ -28,16 +28,19 @@ TimeProvider::TimeProvider() : diffToServer_(0)
void TimeProvider::setDiffToServer(double ms) void TimeProvider::setDiffToServer(double ms)
{ {
static long lastTimeSync = 0; static int32_t lastTimeSync = 0;
long now = chronos::getTickCount(); timeval now;
gettimeofday(&now, NULL);
/// clear diffBuffer if last update is older than a minute /// clear diffBuffer if last update is older than a minute
if (!diffBuffer_.empty() && (now > lastTimeSync + 60*1000)) logO << "now: " << now.tv_sec << ", lastSync: " << lastTimeSync << ", diff: " << now.tv_sec - lastTimeSync << "\n";
if (!diffBuffer_.empty() && (now.tv_sec > lastTimeSync + 60))
{ {
logO << "Last time sync older than a minute. Clearing time buffer\n"; logO << "Last time sync older than a minute. Clearing time buffer\n";
diffToServer_ = ms*1000; diffToServer_ = ms*1000;
diffBuffer_.clear(); diffBuffer_.clear();
} }
lastTimeSync = now; lastTimeSync = now.tv_sec;
diffBuffer_.add(ms*1000); diffBuffer_.add(ms*1000);
diffToServer_ = diffBuffer_.median(3); diffToServer_ = diffBuffer_.median(3);