40
40
disk_buffer_holder::disk_buffer_holder(aux::session_impl& ses, char* buf)
41
: m_iothread(ses.m_disk_thread), m_buf(buf)
43
TORRENT_ASSERT(buf == 0 || m_iothread.is_disk_buffer(buf));
46
disk_buffer_holder::disk_buffer_holder(disk_io_thread& iothread, char* buf)
47
: m_iothread(iothread), m_buf(buf)
49
TORRENT_ASSERT(buf == 0 || m_iothread.is_disk_buffer(buf));
52
void disk_buffer_holder::reset(char* buf)
54
if (m_buf) m_iothread.free_buffer(m_buf);
41
: m_disk_pool(ses.m_disk_thread), m_buf(buf), m_num_blocks(1)
43
TORRENT_ASSERT(buf == 0 || m_disk_pool.is_disk_buffer(buf));
46
disk_buffer_holder::disk_buffer_holder(disk_buffer_pool& iothread, char* buf)
47
: m_disk_pool(iothread), m_buf(buf), m_num_blocks(1)
49
TORRENT_ASSERT(buf == 0 || m_disk_pool.is_disk_buffer(buf));
52
disk_buffer_holder::disk_buffer_holder(disk_buffer_pool& iothread, char* buf, int num_blocks)
53
: m_disk_pool(iothread), m_buf(buf), m_num_blocks(num_blocks)
55
TORRENT_ASSERT(buf == 0 || m_disk_pool.is_disk_buffer(buf));
58
void disk_buffer_holder::reset(char* buf, int num_blocks)
62
if (m_num_blocks == 1) m_disk_pool.free_buffer(m_buf);
63
else m_disk_pool.free_buffers(m_buf, m_num_blocks);
66
m_num_blocks = num_blocks;
58
69
char* disk_buffer_holder::release()
65
76
disk_buffer_holder::~disk_buffer_holder()
67
if (m_buf) m_iothread.free_buffer(m_buf);
80
if (m_num_blocks == 1) m_disk_pool.free_buffer(m_buf);
81
else m_disk_pool.free_buffers(m_buf, m_num_blocks);