21 if (!m_FreePools.empty())
23 Pool* res = m_FreePools.back();
24 m_FreePools.pop_back();
30 m_Pools.push_front(
Pool(numBytes));
31 return &m_Pools.front();
38 m_FreePools.push_back(pool);
48 for (
Pool &pool: m_Pools)
56 for (
Pool &pool: m_Pools)
78 "TosaRefMemoryManager::Pool::GetPointer() called when memory not acquired");
85 "TosaRefMemoryManager::Pool::Reserve() cannot be called after memory acquired");
86 m_Size = std::max(m_Size, numBytes);
92 "TosaRefMemoryManager::Pool::Acquire() called when memory already acquired");
93 m_Pointer = ::operator
new(size_t(m_Size));
99 "TosaRefMemoryManager::Pool::Release() called when memory not acquired");
100 ::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)
virtual ~TosaRefMemoryManager()
void * GetPointer(Pool *pool)
void Allocate(Pool *pool)
Pool * Manage(unsigned int numBytes)
Copyright (c) 2021 ARM Limited and Contributors.