Browse Source

rotate torrents in automanaged mode.

miguelfreitas
Miguel Freitas 11 years ago
parent
commit
66ad21477d
  1. 22
      libtorrent/src/session_impl.cpp

22
libtorrent/src/session_impl.cpp

@ -3243,6 +3243,28 @@ retry:
if (!m_paused) m_auto_manage_time_scaler--; if (!m_paused) m_auto_manage_time_scaler--;
if (m_auto_manage_time_scaler < 0) if (m_auto_manage_time_scaler < 0)
{ {
// [MF] first torrent is sent to the end of the queue
torrent* first = NULL;
for (torrent_map::iterator i = m_torrents.begin()
, end(m_torrents.end()); i != end; ++i) {
torrent* t = i->second.get();
TORRENT_ASSERT(t);
// checking torrents are not subject to auto-management
if (t->state() == torrent_status::checking_files
|| t->state() == torrent_status::queued_for_checking)
{
if (t->is_auto_managed() && t->is_paused()) t->resume();
continue;
}
if (t->is_auto_managed() && !t->has_error()) {
if( !first || t->sequence_number() < first->sequence_number() )
first = t;
}
}
if( first )
first->set_queue_position((std::numeric_limits<int>::max)());
m_auto_manage_time_scaler = settings().auto_manage_interval; m_auto_manage_time_scaler = settings().auto_manage_interval;
recalculate_auto_managed_torrents(); recalculate_auto_managed_torrents();
} }

Loading…
Cancel
Save