Merge pull request #13188 from jagannatharjun/fix-speed

Fix impossible speed in graph
This commit is contained in:
Mike Tzou 2020-07-30 11:20:03 +08:00 committed by GitHub
commit a2a5c28c9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 11 deletions

View file

@ -516,7 +516,6 @@ Session::Session(QObject *parent)
, m_OSMemoryPriority(BITTORRENT_KEY("OSMemoryPriority"), OSMemoryPriority::BelowNormal) , m_OSMemoryPriority(BITTORRENT_KEY("OSMemoryPriority"), OSMemoryPriority::BelowNormal)
#endif #endif
, m_resumeFolderLock {new QFile {this}} , m_resumeFolderLock {new QFile {this}}
, m_refreshTimer {new QTimer {this}}
, m_seedingLimitTimer {new QTimer {this}} , m_seedingLimitTimer {new QTimer {this}}
, m_resumeDataTimer {new QTimer {this}} , m_resumeDataTimer {new QTimer {this}}
, m_statistics {new Statistics {this}} , m_statistics {new Statistics {this}}
@ -552,10 +551,7 @@ Session::Session(QObject *parent)
m_tags = List::toSet(m_storedTags.value()); m_tags = List::toSet(m_storedTags.value());
m_refreshTimer->setInterval(refreshInterval()); enqueueRefresh();
connect(m_refreshTimer, &QTimer::timeout, this, &Session::refresh);
m_refreshTimer->start();
updateSeedingLimitTimer(); updateSeedingLimitTimer();
populateAdditionalTrackers(); populateAdditionalTrackers();
@ -669,7 +665,6 @@ uint Session::refreshInterval() const
void Session::setRefreshInterval(const uint value) void Session::setRefreshInterval(const uint value)
{ {
if (value != refreshInterval()) { if (value != refreshInterval()) {
m_refreshTimer->setInterval(value);
m_refreshInterval = value; m_refreshInterval = value;
} }
} }
@ -4141,10 +4136,17 @@ quint64 Session::getAlltimeUL() const
return m_statistics->getAlltimeUL(); return m_statistics->getAlltimeUL();
} }
void Session::refresh() void Session::enqueueRefresh()
{ {
m_nativeSession->post_torrent_updates(); Q_ASSERT(!m_refreshEnqueued);
m_nativeSession->post_session_stats();
QTimer::singleShot(refreshInterval(), this, [this] ()
{
m_nativeSession->post_torrent_updates();
m_nativeSession->post_session_stats();
});
m_refreshEnqueued = true;
} }
void Session::handleIPFilterParsed(const int ruleCount) void Session::handleIPFilterParsed(const int ruleCount)
@ -4680,6 +4682,11 @@ void Session::handleSessionStatsAlert(const lt::session_stats_alert *p)
? (stats[m_metricIndices.disk.diskJobTime] / totalJobs) : 0; ? (stats[m_metricIndices.disk.diskJobTime] / totalJobs) : 0;
emit statsUpdated(); emit statsUpdated();
if (m_refreshEnqueued)
m_refreshEnqueued = false;
else
enqueueRefresh();
} }
void Session::handleAlertsDroppedAlert(const lt::alerts_dropped_alert *p) const void Session::handleAlertsDroppedAlert(const lt::alerts_dropped_alert *p) const
@ -4747,6 +4754,11 @@ void Session::handleStateUpdateAlert(const lt::state_update_alert *p)
if (!updatedTorrents.isEmpty()) if (!updatedTorrents.isEmpty())
emit torrentsUpdated(updatedTorrents); emit torrentsUpdated(updatedTorrents);
if (m_refreshEnqueued)
m_refreshEnqueued = false;
else
enqueueRefresh();
} }
#if (LIBTORRENT_VERSION_NUM >= 10204) #if (LIBTORRENT_VERSION_NUM >= 10204)

View file

@ -518,7 +518,7 @@ namespace BitTorrent
private slots: private slots:
void configureDeferred(); void configureDeferred();
void readAlerts(); void readAlerts();
void refresh(); void enqueueRefresh();
void processShareLimits(); void processShareLimits();
void generateResumeData(bool final = false); void generateResumeData(bool final = false);
void handleIPFilterParsed(int ruleCount); void handleIPFilterParsed(int ruleCount);
@ -729,7 +729,7 @@ namespace BitTorrent
QString m_resumeFolderPath; QString m_resumeFolderPath;
QFile *m_resumeFolderLock = nullptr; QFile *m_resumeFolderLock = nullptr;
QTimer *m_refreshTimer = nullptr; bool m_refreshEnqueued = false;
QTimer *m_seedingLimitTimer = nullptr; QTimer *m_seedingLimitTimer = nullptr;
QTimer *m_resumeDataTimer = nullptr; QTimer *m_resumeDataTimer = nullptr;
Statistics *m_statistics = nullptr; Statistics *m_statistics = nullptr;