mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-23 13:04:23 +00:00
Only enqueue session refresh request once previous request is completed
Fixes impossible speed in graph
This commit is contained in:
parent
8eecfb1bee
commit
f1edda2c81
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4127,10 +4122,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)
|
||||||
@ -4666,6 +4668,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
|
||||||
@ -4712,6 +4719,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)
|
||||||
|
@ -516,7 +516,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);
|
||||||
@ -727,7 +727,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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user