make disk cache pool allocator configurable
This commit is contained in:
@@ -38,6 +38,10 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
#include "libtorrent/session_settings.hpp"
|
||||
#include "libtorrent/allocator.hpp"
|
||||
|
||||
#ifndef TORRENT_DISABLE_POOL_ALLOCATOR
|
||||
#include <boost/pool/pool.hpp>
|
||||
#endif
|
||||
|
||||
#ifdef TORRENT_DISK_STATS
|
||||
#include <fstream>
|
||||
#endif
|
||||
@@ -97,6 +101,25 @@ namespace libtorrent
|
||||
|
||||
mutable mutex m_pool_mutex;
|
||||
|
||||
#ifndef TORRENT_DISABLE_POOL_ALLOCATOR
|
||||
// if this is true, all buffers are allocated
|
||||
// from m_pool. If this is false, all buffers
|
||||
// are allocated using page_aligned_allocator.
|
||||
// if the settings change to prefer the other
|
||||
// allocator, this bool will not switch over
|
||||
// to match the settings until all buffers have
|
||||
// been freed. That way, we never have a mixture
|
||||
// of buffers allocated from different sources.
|
||||
// in essence, this make the setting only take
|
||||
// effect after a restart (which seems fine).
|
||||
// or once the client goes idle for a while.
|
||||
bool m_using_pool_allocator;
|
||||
|
||||
// memory pool for read and write operations
|
||||
// and disk cache
|
||||
boost::pool<page_aligned_allocator> m_pool;
|
||||
#endif
|
||||
|
||||
#if defined TORRENT_DISK_STATS || defined TORRENT_STATS
|
||||
int m_allocations;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user