queued disk bytes fix
This commit is contained in:
parent
e06b7f7000
commit
73a8673cfc
|
@ -1341,9 +1341,13 @@ namespace libtorrent
|
||||||
|
|
||||||
disk_io_job j = m_jobs.front();
|
disk_io_job j = m_jobs.front();
|
||||||
m_jobs.pop_front();
|
m_jobs.pop_front();
|
||||||
m_queue_buffer_size -= j.buffer_size;
|
if (j.action == disk_io_job::write)
|
||||||
jl.unlock();
|
{
|
||||||
|
TORRENT_ASSERT(m_queue_buffer_size >= j.buffer_size);
|
||||||
|
m_queue_buffer_size -= j.buffer_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool post = false;
|
||||||
if (m_queue_buffer_size + j.buffer_size >= m_settings.max_queued_disk_bytes
|
if (m_queue_buffer_size + j.buffer_size >= m_settings.max_queued_disk_bytes
|
||||||
&& m_queue_buffer_size < m_settings.max_queued_disk_bytes
|
&& m_queue_buffer_size < m_settings.max_queued_disk_bytes
|
||||||
&& m_queue_callback
|
&& m_queue_callback
|
||||||
|
@ -1352,8 +1356,11 @@ namespace libtorrent
|
||||||
// we just dropped below the high watermark of number of bytes
|
// we just dropped below the high watermark of number of bytes
|
||||||
// queued for writing to the disk. Notify the session so that it
|
// queued for writing to the disk. Notify the session so that it
|
||||||
// can trigger all the connections waiting for this event
|
// can trigger all the connections waiting for this event
|
||||||
m_ios.post(m_queue_callback);
|
post = true;
|
||||||
}
|
}
|
||||||
|
jl.unlock();
|
||||||
|
|
||||||
|
if (post) m_ios.post(m_queue_callback);
|
||||||
|
|
||||||
flush_expired_pieces();
|
flush_expired_pieces();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue