Skip to content

Commit bff3d76

Browse files
committed
pmr: implement allocations / deallocations counter
1 parent 159869a commit bff3d76

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

api/util/detail/alloc_pmr.hpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ namespace os::mem::detail {
5050
}
5151

5252
allocated_ += size;
53+
allocations_++;
5354
return buf;
5455
}
5556

@@ -61,6 +62,7 @@ namespace os::mem::detail {
6162

6263
free(ptr);
6364
allocated_ -= size;
65+
deallocations_++;
6466
}
6567

6668
bool do_is_equal(const std::pmr::memory_resource& other) const noexcept override {
@@ -174,6 +176,14 @@ namespace os::mem::detail {
174176
return allocated_;
175177
}
176178

179+
std::size_t alloc_count() {
180+
return allocations_;
181+
}
182+
183+
std::size_t dealloc_count() {
184+
return deallocations_;
185+
}
186+
177187
bool full() {
178188
return allocated_ >= cap_total_;
179189
}
@@ -198,6 +208,8 @@ namespace os::mem::detail {
198208

199209
private:
200210
std::size_t allocated_ = 0;
211+
std::size_t allocations_ = 0;
212+
std::size_t deallocations_ = 0;
201213
std::size_t cap_total_ = 0;
202214
std::size_t cap_suballoc_ = 0;
203215
std::size_t max_resources_ = 0;
@@ -225,6 +237,8 @@ namespace os::mem {
225237
: impl{std::make_shared<detail::Pmr_pool>(sz, sz_sub, max_allocs)}{}
226238
Pmr_pool::Resource_ptr Pmr_pool::get_resource() { return impl->get_resource(); }
227239
std::size_t Pmr_pool::resource_count() { return impl->resource_count(); }
240+
std::size_t Pmr_pool::alloc_count() { return impl->alloc_count(); }
241+
std::size_t Pmr_pool::dealloc_count() { return impl->dealloc_count(); }
228242
void Pmr_pool::return_resource(Resource* res) { impl->return_resource(res); }
229243
bool Pmr_pool::full() { return impl->full(); }
230244
bool Pmr_pool::empty() { return impl->empty(); }

0 commit comments

Comments
 (0)