2 #include "buffer_pool.hh"
5 BufferPool::BufferPool(
size_t pool_size,
size_t buffer_size)
8 for(
size_t i = 0; i < pool_size; ++i)
11 pool.emplace_back(std::make_shared<DataStruct>(buffer_size));
16 std::shared_ptr<DataStruct> BufferPool::acquire()
19 std::lock_guard<std::mutex> lock(mutex);
30 auto buffer = pool.back();
39 void BufferPool::release(std::shared_ptr<DataStruct> buffer)
42 std::lock_guard<std::mutex> lock(mutex);
44 pool.push_back(buffer);