SG::ArenaHandleBase Node1 SG::ArenaHandleBase + ArenaHandleBase() + ArenaHandleBase() + ArenaHandleBase() + reset() + erase() + reserve() + stats() # baseAllocator() # baseAllocator() Node2 SG::LockedAllocator + LockedAllocator() + operator*() + operator->() + get() + get() Node2->Node1 -m_allocator Node3 std::unique_lock< std ::mutex > Node3->Node2 -m_lock Node4 std::mutex Node4->Node3 +ptr Node5 SG::ArenaAllocatorBase + ~ArenaAllocatorBase() + reset() + erase() + reserve() + stats() + name() + report() + makeConstructor() + makeConstructor() + makeDestructor() + makeDestructor() + makeClear() + makeClear() - construct_fcn() - destroy_fcn() - clear_fcn() Node5->Node2 -m_alloc