@@ -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