22 if (!m_FreePools.empty())
24 Pool* res = m_FreePools.back();
25 m_FreePools.pop_back();
31 m_Pools.push_front(
Pool(numBytes));
32 return &m_Pools.front();
39 m_FreePools.push_back(pool);
49 for (
Pool &pool: m_Pools)
57 for (
Pool &pool: m_Pools)
79 "RefMemoryManager::Pool::GetPointer() called when memory not acquired");
86 "RefMemoryManager::Pool::Reserve() cannot be called after memory acquired");
87 m_Size = std::max(m_Size, numBytes);
93 "RefMemoryManager::Pool::Acquire() called when memory already acquired");
94 m_Pointer = ::operator
new(size_t(m_Size));
100 "RefMemoryManager::Pool::Release() called when memory not acquired");
101 ::operator
delete(m_Pointer);
#define ARMNN_THROW_INVALIDARG_MSG_IF_FALSE(_cond, _str)
#define ARMNN_THROW_MSG_IF_FALSE(_cond, _except, _str)
Pool(unsigned int numBytes)
void Reserve(unsigned int numBytes)
Pool * Manage(unsigned int numBytes)
virtual ~RefMemoryManager()
void * GetPointer(Pool *pool)
void Allocate(Pool *pool)
Copyright (c) 2021 ARM Limited and Contributors.