forked from premiere/premiere-libtorrent
rate limit how often recalculate_auto_managed can be called (it's expensive)
This commit is contained in:
parent
9d98c3baee
commit
b07b208a4a
|
@ -976,6 +976,10 @@ namespace libtorrent
|
||||||
// to decide which ones to choke/unchoke
|
// to decide which ones to choke/unchoke
|
||||||
time_point m_last_choke;
|
time_point m_last_choke;
|
||||||
|
|
||||||
|
// the last time we recalculated which torrents should be started
|
||||||
|
// and stopped (only the auto managed ones)
|
||||||
|
time_point m_last_auto_manage;
|
||||||
|
|
||||||
#ifndef TORRENT_NO_DEPRECATE
|
#ifndef TORRENT_NO_DEPRECATE
|
||||||
// the time when the next rss feed needs updating
|
// the time when the next rss feed needs updating
|
||||||
time_point m_next_rss_update;
|
time_point m_next_rss_update;
|
||||||
|
|
|
@ -390,6 +390,7 @@ namespace aux {
|
||||||
, m_last_tick(m_created)
|
, m_last_tick(m_created)
|
||||||
, m_last_second_tick(m_created - milliseconds(900))
|
, m_last_second_tick(m_created - milliseconds(900))
|
||||||
, m_last_choke(m_created)
|
, m_last_choke(m_created)
|
||||||
|
, m_last_auto_manage(m_created)
|
||||||
#ifndef TORRENT_NO_DEPRECATE
|
#ifndef TORRENT_NO_DEPRECATE
|
||||||
, m_next_rss_update(min_time())
|
, m_next_rss_update(min_time())
|
||||||
#endif
|
#endif
|
||||||
|
@ -3494,6 +3495,7 @@ retry:
|
||||||
{
|
{
|
||||||
INVARIANT_CHECK;
|
INVARIANT_CHECK;
|
||||||
|
|
||||||
|
m_last_auto_manage = time_now_hires();
|
||||||
m_need_auto_manage = false;
|
m_need_auto_manage = false;
|
||||||
|
|
||||||
if (is_paused()) return;
|
if (is_paused()) return;
|
||||||
|
@ -5918,6 +5920,13 @@ retry:
|
||||||
{
|
{
|
||||||
if (m_pending_auto_manage || m_abort) return;
|
if (m_pending_auto_manage || m_abort) return;
|
||||||
|
|
||||||
|
// we we recalculated auto-managed torrents less than a second ago,
|
||||||
|
// put it off one second.
|
||||||
|
if (time_now_hires() - m_last_auto_manage < seconds(1))
|
||||||
|
{
|
||||||
|
m_auto_manage_time_scaler = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_pending_auto_manage = true;
|
m_pending_auto_manage = true;
|
||||||
m_need_auto_manage = true;
|
m_need_auto_manage = true;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue