replaced deque with list in disk_io_thread
This commit is contained in:
parent
83f405ac54
commit
c689c0b5fc
|
@ -45,7 +45,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <boost/pool/pool.hpp>
|
#include <boost/pool/pool.hpp>
|
||||||
#include <boost/noncopyable.hpp>
|
#include <boost/noncopyable.hpp>
|
||||||
#include <boost/shared_array.hpp>
|
#include <boost/shared_array.hpp>
|
||||||
#include <deque>
|
|
||||||
#include <list>
|
#include <list>
|
||||||
#include "libtorrent/config.hpp"
|
#include "libtorrent/config.hpp"
|
||||||
|
|
||||||
|
@ -229,7 +228,7 @@ namespace libtorrent
|
||||||
mutable mutex_t m_mutex;
|
mutable mutex_t m_mutex;
|
||||||
boost::condition m_signal;
|
boost::condition m_signal;
|
||||||
bool m_abort;
|
bool m_abort;
|
||||||
std::deque<disk_io_job> m_jobs;
|
std::list<disk_io_job> m_jobs;
|
||||||
size_type m_queue_buffer_size;
|
size_type m_queue_buffer_size;
|
||||||
|
|
||||||
// write cache
|
// write cache
|
||||||
|
|
|
@ -78,7 +78,7 @@ namespace libtorrent
|
||||||
, int action, int piece) const
|
, int action, int piece) const
|
||||||
{
|
{
|
||||||
mutex_t::scoped_lock l(m_mutex);
|
mutex_t::scoped_lock l(m_mutex);
|
||||||
for (std::deque<disk_io_job>::const_iterator i = m_jobs.begin();
|
for (std::list<disk_io_job>::const_iterator i = m_jobs.begin();
|
||||||
i != m_jobs.end(); ++i)
|
i != m_jobs.end(); ++i)
|
||||||
{
|
{
|
||||||
if (i->storage != s)
|
if (i->storage != s)
|
||||||
|
@ -154,7 +154,7 @@ namespace libtorrent
|
||||||
{
|
{
|
||||||
mutex_t::scoped_lock l(m_mutex);
|
mutex_t::scoped_lock l(m_mutex);
|
||||||
// read jobs are aborted, write and move jobs are syncronized
|
// read jobs are aborted, write and move jobs are syncronized
|
||||||
for (std::deque<disk_io_job>::iterator i = m_jobs.begin();
|
for (std::list<disk_io_job>::iterator i = m_jobs.begin();
|
||||||
i != m_jobs.end();)
|
i != m_jobs.end();)
|
||||||
{
|
{
|
||||||
if (i->storage != s)
|
if (i->storage != s)
|
||||||
|
@ -646,7 +646,7 @@ namespace libtorrent
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::deque<disk_io_job>::reverse_iterator i = m_jobs.rbegin();
|
std::list<disk_io_job>::reverse_iterator i = m_jobs.rbegin();
|
||||||
if (j.action == disk_io_job::read)
|
if (j.action == disk_io_job::read)
|
||||||
{
|
{
|
||||||
// when we're reading, we may not skip
|
// when we're reading, we may not skip
|
||||||
|
@ -689,7 +689,7 @@ namespace libtorrent
|
||||||
if (i == m_jobs.rend() && (m_jobs.empty() || j.priority <= m_jobs.back().priority))
|
if (i == m_jobs.rend() && (m_jobs.empty() || j.priority <= m_jobs.back().priority))
|
||||||
i = m_jobs.rbegin();
|
i = m_jobs.rbegin();
|
||||||
|
|
||||||
std::deque<disk_io_job>::iterator k = m_jobs.insert(i.base(), j);
|
std::list<disk_io_job>::iterator k = m_jobs.insert(i.base(), j);
|
||||||
k->callback.swap(const_cast<boost::function<void(int, disk_io_job const&)>&>(f));
|
k->callback.swap(const_cast<boost::function<void(int, disk_io_job const&)>&>(f));
|
||||||
if (j.action == disk_io_job::write)
|
if (j.action == disk_io_job::write)
|
||||||
m_queue_buffer_size += j.buffer_size;
|
m_queue_buffer_size += j.buffer_size;
|
||||||
|
|
Loading…
Reference in New Issue