From 39830986c260b2695e5d2febc585ea24a14ddc3e Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 1 Jun 2019 11:28:37 +0800 Subject: [PATCH] Use alert's timestamp This way has better accuracy than running our own timer. --- src/base/bittorrent/session.cpp | 5 +++-- src/base/bittorrent/session.h | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 4ed8cf4ed..669401559 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -508,7 +508,6 @@ Session::Session(QObject *parent) new PortForwarderImpl {m_nativeSession}; initMetrics(); - m_statsUpdateTimer.start(); qDebug("* BitTorrent Session constructed"); } @@ -4207,7 +4206,9 @@ void Session::handleExternalIPAlert(const lt::external_ip_alert *p) void Session::handleSessionStatsAlert(const lt::session_stats_alert *p) { - const qreal interval = m_statsUpdateTimer.restart() / 1000.; + const qreal interval = lt::total_milliseconds(p->timestamp() - m_statsLastTimestamp) / 1000.; + m_statsLastTimestamp = p->timestamp(); + #if (LIBTORRENT_VERSION_NUM < 10200) const auto &stats = p->values; #else diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index 8fff70235..30c73ae1a 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -34,7 +34,6 @@ #include -#include #include #include #include @@ -701,7 +700,7 @@ namespace BitTorrent QTimer *m_recentErroredTorrentsTimer; SessionMetricIndices m_metricIndices; - QElapsedTimer m_statsUpdateTimer; + lt::time_point m_statsLastTimestamp = lt::clock_type::now(); SessionStatus m_status; CacheStatus m_cacheStatus;