diff --git a/src/memory/wrapper.h b/src/memory/wrapper.h index 12e4339..aeb5201 100644 --- a/src/memory/wrapper.h +++ b/src/memory/wrapper.h @@ -139,8 +139,8 @@ public: private: spin_lock lc_; - std::multimap, - page_allocator>*/> allocs_; + std::multimap, + page_allocator>> allocs_; struct alloc_t { synchronized* t_; @@ -156,12 +156,11 @@ private: std::tie(s_, a_) = *it; t_->allocs_.erase(it); } -// if (a_ == nullptr) { -// a_ = static_cast(page_pool_alloc::alloc(sizeof(alloc_policy))); -// } + if (a_ == nullptr) { + a_ = static_cast(page_pool_alloc::alloc(sizeof(alloc_policy))); + } } -// ::new (a_) alloc_policy; - a_ = new alloc_policy; + ::new (a_) alloc_policy; } ~alloc_t() { @@ -189,16 +188,11 @@ private: } public: - ~synchronized() { - clear(); - } - void clear() { IPC_UNUSED_ auto guard = ipc::detail::unique_lock(lc_); for (auto& pair : allocs_) { pair.second->~AllocP(); -// page_pool_alloc::free(pair.second, sizeof(alloc_policy)); - delete pair.second; + page_pool_alloc::free(pair.second, sizeof(alloc_policy)); } }