35 : _lifetime_mgr(
std::move(lifetime_manager)), _pool_mgr(
std::move(pool_manager))
43 return _lifetime_mgr.get();
48 return _pool_mgr.get();
59 auto pool_template = _lifetime_mgr->create_pool(&allocator);
60 for(
int i = num_pools; i > 1; --i)
62 auto pool = pool_template->duplicate();
63 _pool_mgr->register_pool(std::move(pool));
65 _pool_mgr->register_pool(std::move(pool_template));
71 _pool_mgr->clear_pools();
Memory pool manager interface.
MemoryManagerOnDemand(std::shared_ptr< ILifetimeManager > lifetime_manager, std::shared_ptr< IPoolManager > pool_manager)
Default Constructor.
#define ARM_COMPUTE_ERROR_ON(cond)
If the condition is true then an error message is printed and an exception thrown.
IPoolManager * pool_manager() override
Returns the pool manager used by the memory manager.
Copyright (c) 2017-2021 Arm Limited.
Interface for managing the lifetime of objects.
void clear() override
Clears the pool manager.
ILifetimeManager * lifetime_manager() override
Returns the lifetime manager used by the memory manager.
#define ARM_COMPUTE_ERROR_ON_MSG(cond, msg)
input allocator() -> allocate()
void populate(IAllocator &allocator, size_t num_pools) override
Populates the pool manager with the given number of pools.