replaced deque with list in disk_io_thread

This commit is contained in:
Arvid Norberg 2008-02-26 20:08:33 +00:00
parent 83f405ac54
commit c689c0b5fc
2 changed files with 5 additions and 6 deletions

View File

@ -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

View File

@ -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;