diff --git a/src/net/clientthread.h b/src/net/clientthread.h index cf09819f..03f5fd96 100644 --- a/src/net/clientthread.h +++ b/src/net/clientthread.h @@ -77,14 +77,17 @@ public: void StartPing() { pingTimer.start(); } - void EndPing() { + bool EndPing() { + bool retVal = false; if (pingTimer.is_running()) { pingValues.push_back((unsigned)pingTimer.elapsed().total_milliseconds()); if (pingValues.size() > SIZE_PING_BACKLOG) { pingValues.pop_front(); } pingTimer.reset(); + retVal = true; } + return retVal; } private: diff --git a/src/net/common/clientthread.cpp b/src/net/common/clientthread.cpp index fc0c4d6f..c36e94af 100644 --- a/src/net/common/clientthread.cpp +++ b/src/net/common/clientthread.cpp @@ -1566,8 +1566,9 @@ void ClientThread::EndPing() { boost::mutex::scoped_lock lock(m_pingDataMutex); - m_pingData.EndPing(); - GetCallback().SignalNetClientPingUpdate(m_pingData.MinPing(), m_pingData.AveragePing(), m_pingData.MaxPing()); + if (m_pingData.EndPing()) { + GetCallback().SignalNetClientPingUpdate(m_pingData.MinPing(), m_pingData.AveragePing(), m_pingData.MaxPing()); + } } ServerStats