summaryrefslogtreecommitdiff
path: root/src/common/mempool.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/mempool.h')
-rw-r--r--src/common/mempool.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/common/mempool.h b/src/common/mempool.h
index 577f5cc653..2c5c925f77 100644
--- a/src/common/mempool.h
+++ b/src/common/mempool.h
@@ -18,11 +18,13 @@ typedef struct mp_pool_t mp_pool_t;
void *mp_pool_get(mp_pool_t *pool);
void mp_pool_release(void *item);
mp_pool_t *mp_pool_new(size_t item_size, size_t chunk_capacity);
-void mp_pool_clean(mp_pool_t *pool, int n);
+void mp_pool_clean(mp_pool_t *pool, int n_to_keep, int keep_recently_used);
void mp_pool_destroy(mp_pool_t *pool);
void mp_pool_assert_ok(mp_pool_t *pool);
void mp_pool_log_status(mp_pool_t *pool, int severity);
+#define MEMPOOL_STATS
+
#ifdef MEMPOOL_PRIVATE
/* These declarations are only used by mempool.c and test.c */
@@ -47,6 +49,14 @@ struct mp_pool_t {
/** Size to allocate for each item, including overhead and alignment
* padding. */
size_t item_alloc_size;
+#ifdef MEMPOOL_STATS
+ /** Total number of items allocated ever */
+ uint64_t total_items_allocated;
+ /** Total number of chunks allocated ever */
+ uint64_t total_chunks_allocated;
+ /** Total number of chunks freed ever */
+ uint64_t total_chunks_freed;
+#endif
};
#endif