mirror of
https://github.com/mutouyun/cpp-ipc.git
synced 2025-12-06 16:56:45 +08:00
no automatically clear
This commit is contained in:
parent
6ec8ca9a9e
commit
1a71313431
@ -139,8 +139,8 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
spin_lock lc_;
|
spin_lock lc_;
|
||||||
std::multimap<std::size_t, alloc_policy*/*, std::less<std::size_t>,
|
std::multimap<std::size_t, alloc_policy*, std::less<std::size_t>,
|
||||||
page_allocator<std::pair<const std::size_t, alloc_policy*>>*/> allocs_;
|
page_allocator<std::pair<const std::size_t, alloc_policy*>>> allocs_;
|
||||||
|
|
||||||
struct alloc_t {
|
struct alloc_t {
|
||||||
synchronized* t_;
|
synchronized* t_;
|
||||||
@ -156,12 +156,11 @@ private:
|
|||||||
std::tie(s_, a_) = *it;
|
std::tie(s_, a_) = *it;
|
||||||
t_->allocs_.erase(it);
|
t_->allocs_.erase(it);
|
||||||
}
|
}
|
||||||
// if (a_ == nullptr) {
|
if (a_ == nullptr) {
|
||||||
// a_ = static_cast<alloc_policy*>(page_pool_alloc::alloc(sizeof(alloc_policy)));
|
a_ = static_cast<alloc_policy*>(page_pool_alloc::alloc(sizeof(alloc_policy)));
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// ::new (a_) alloc_policy;
|
}
|
||||||
a_ = new alloc_policy;
|
::new (a_) alloc_policy;
|
||||||
}
|
}
|
||||||
|
|
||||||
~alloc_t() {
|
~alloc_t() {
|
||||||
@ -189,16 +188,11 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
~synchronized() {
|
|
||||||
clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
void clear() {
|
void clear() {
|
||||||
IPC_UNUSED_ auto guard = ipc::detail::unique_lock(lc_);
|
IPC_UNUSED_ auto guard = ipc::detail::unique_lock(lc_);
|
||||||
for (auto& pair : allocs_) {
|
for (auto& pair : allocs_) {
|
||||||
pair.second->~AllocP();
|
pair.second->~AllocP();
|
||||||
// page_pool_alloc::free(pair.second, sizeof(alloc_policy));
|
page_pool_alloc::free(pair.second, sizeof(alloc_policy));
|
||||||
delete pair.second;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user