fix issue with unchoke_slots_limit not preserving its value correctly

This commit is contained in:
Arvid Norberg
2011-12-19 05:53:11 +00:00
parent ef724014aa
commit 7f3aac3959
4 changed files with 24 additions and 9 deletions

View File

@@ -4131,7 +4131,8 @@ namespace aux {
++m_allowed_upload_slots;
}
else if (m_upload_rate.queue_size() > 1
&& m_allowed_upload_slots > m_settings.unchoke_slots_limit)
&& m_allowed_upload_slots > m_settings.unchoke_slots_limit
&& m_settings.unchoke_slots_limit >= 0)
{
--m_allowed_upload_slots;
}
@@ -5163,10 +5164,10 @@ namespace aux {
void session_impl::update_unchoke_limit()
{
if (m_settings.unchoke_slots_limit < 0)
m_settings.unchoke_slots_limit = (std::numeric_limits<int>::max)();
m_allowed_upload_slots = m_settings.unchoke_slots_limit;
if (m_allowed_upload_slots < 0)
m_allowed_upload_slots = (std::numeric_limits<int>::max)();
if (m_settings.num_optimistic_unchoke_slots >= m_allowed_upload_slots / 2)
{
if (m_alerts.should_post<performance_alert>())
@@ -5621,7 +5622,6 @@ namespace aux {
std::set<peer_connection*> unique_peers;
TORRENT_ASSERT(m_settings.connections_limit > 0);
TORRENT_ASSERT(m_settings.unchoke_slots_limit >= 0);
if (m_settings.choking_algorithm == session_settings::auto_expand_choker)
TORRENT_ASSERT(m_allowed_upload_slots >= m_settings.unchoke_slots_limit);
int unchokes = 0;