forked from premiere/premiere-libtorrent
optimize socket send buffers a bit
This commit is contained in:
parent
a9b51e1579
commit
d3fb55e1da
|
@ -538,7 +538,7 @@ namespace libtorrent
|
|||
|
||||
// these functions are virtual to let bt_peer_connection hook into them
|
||||
// and encrypt the content
|
||||
enum message_type_flags { message_type_request = 1 };
|
||||
enum message_type_flags { message_type_request = 1, cork_message = 2 };
|
||||
virtual void send_buffer(char const* begin, int size, int flags = 0
|
||||
, void (*fun)(char*, int, void*) = 0, void* userdata = 0);
|
||||
virtual void setup_send();
|
||||
|
|
|
@ -2339,12 +2339,12 @@ namespace libtorrent
|
|||
char* ptr = msg;
|
||||
detail::write_int32(r.length + 1 + 4 + 4 + 4 + piece_list_buf.size(), ptr);
|
||||
|
||||
send_buffer(msg, 17);
|
||||
send_buffer(&piece_list_buf[0], piece_list_buf.size());
|
||||
send_buffer(msg, 17, cork_message);
|
||||
send_buffer(&piece_list_buf[0], piece_list_buf.size(), cork_message);
|
||||
}
|
||||
else
|
||||
{
|
||||
send_buffer(msg, 13);
|
||||
send_buffer(msg, 13, cork_message);
|
||||
}
|
||||
|
||||
append_send_buffer(buffer.get(), r.length
|
||||
|
|
|
@ -4458,7 +4458,6 @@ namespace libtorrent
|
|||
if (j.buffer) m_ses.m_disk_thread.rename_buffer(j.buffer, "dispatched send buffer");
|
||||
#endif
|
||||
write_piece(r, buffer);
|
||||
setup_send();
|
||||
}
|
||||
|
||||
void peer_connection::assign_bandwidth(int channel, int amount)
|
||||
|
@ -5005,7 +5004,7 @@ namespace libtorrent
|
|||
, boost::bind(&session_impl::free_buffer, boost::ref(m_ses), _1));
|
||||
++i;
|
||||
}
|
||||
setup_send();
|
||||
if ((flags & cork_message) == 0) setup_send();
|
||||
}
|
||||
|
||||
template<class T>
|
||||
|
@ -5030,7 +5029,7 @@ namespace libtorrent
|
|||
++m_ses.m_num_messages[aux::session_impl::on_read_counter];
|
||||
int size = 8;
|
||||
int index = 0;
|
||||
while (bytes_transferred > size) { size <<= 1; ++index; }
|
||||
while (bytes_transferred > size + 13) { size <<= 1; ++index; }
|
||||
int num_max = sizeof(m_ses.m_recv_buffer_sizes)/sizeof(m_ses.m_recv_buffer_sizes[0]);
|
||||
if (index >= num_max) index = num_max - 1;
|
||||
++m_ses.m_recv_buffer_sizes[index];
|
||||
|
@ -5378,7 +5377,7 @@ namespace libtorrent
|
|||
++m_ses.m_num_messages[aux::session_impl::on_write_counter];
|
||||
int size = 8;
|
||||
int index = 0;
|
||||
while (bytes_transferred > size) { size <<= 1; ++index; }
|
||||
while (bytes_transferred > size + 13) { size <<= 1; ++index; }
|
||||
int num_max = sizeof(m_ses.m_send_buffer_sizes)/sizeof(m_ses.m_send_buffer_sizes[0]);
|
||||
if (index >= num_max) index = num_max - 1;
|
||||
++m_ses.m_send_buffer_sizes[index];
|
||||
|
|
Loading…
Reference in New Issue