use a deque instead of list for disk io jobs queue

This commit is contained in:
Arvid Norberg 2011-03-28 06:01:24 +00:00
parent 206b736632
commit 74ccff22be
2 changed files with 5 additions and 5 deletions

View File

@ -46,7 +46,7 @@ POSSIBILITY OF SUCH DAMAGE.
#include <boost/function/function2.hpp>
#include <boost/noncopyable.hpp>
#include <boost/shared_array.hpp>
#include <list>
#include <deque>
#include "libtorrent/config.hpp"
#ifndef TORRENT_DISABLE_POOL_ALLOCATOR
#include <boost/pool/pool.hpp>
@ -441,7 +441,7 @@ namespace libtorrent
event m_signal;
bool m_abort;
bool m_waiting_to_shutdown;
std::list<disk_io_job> m_jobs;
std::deque<disk_io_job> m_jobs;
size_type m_queue_buffer_size;
ptime m_last_file_check;

View File

@ -358,7 +358,7 @@ namespace libtorrent
{
mutex::scoped_lock l(m_queue_mutex);
// read jobs are aborted, write and move jobs are syncronized
for (std::list<disk_io_job>::iterator i = m_jobs.begin();
for (std::deque<disk_io_job>::iterator i = m_jobs.begin();
i != m_jobs.end();)
{
if (i->storage != s)
@ -1862,7 +1862,7 @@ namespace libtorrent
m_log << log_time() << " abort_torrent " << std::endl;
#endif
mutex::scoped_lock jl(m_queue_mutex);
for (std::list<disk_io_job>::iterator i = m_jobs.begin();
for (std::deque<disk_io_job>::iterator i = m_jobs.begin();
i != m_jobs.end();)
{
if (i->storage != j.storage)
@ -1929,7 +1929,7 @@ namespace libtorrent
// clear all read jobs
mutex::scoped_lock jl(m_queue_mutex);
for (std::list<disk_io_job>::iterator i = m_jobs.begin();
for (std::deque<disk_io_job>::iterator i = m_jobs.begin();
i != m_jobs.end();)
{
if (should_cancel_on_abort(*i))