summaryrefslogtreecommitdiff
path: root/lib/mempool.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mempool.c')
-rw-r--r--lib/mempool.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/mempool.c b/lib/mempool.c
index 8f300b81..f9a9aaca 100644
--- a/lib/mempool.c
+++ b/lib/mempool.c
@@ -43,10 +43,12 @@ struct linpool {
uint chunk_size, threshold, total:31, use_pages:1, total_large;
};
+_Thread_local linpool *tmp_linpool;
+
static void lp_free(resource *);
static void lp_dump(resource *);
static resource *lp_lookup(resource *, unsigned long);
-static size_t lp_memsize(resource *r);
+static struct resmem lp_memsize(resource *r);
static struct resclass lp_class = {
"LinPool",
@@ -302,7 +304,7 @@ lp_dump(resource *r)
m->total_large);
}
-static size_t
+static struct resmem
lp_memsize(resource *r)
{
linpool *m = (linpool *) r;
@@ -314,9 +316,11 @@ lp_memsize(resource *r)
for(c=m->first_large; c; c=c->next)
cnt++;
- return ALLOC_OVERHEAD + sizeof(struct linpool) +
- cnt * (ALLOC_OVERHEAD + sizeof(struct lp_chunk)) +
- m->total + m->total_large;
+ return (struct resmem) {
+ .effective = m->total + m->total_large,
+ .overhead = ALLOC_OVERHEAD + sizeof(struct linpool) +
+ cnt * (ALLOC_OVERHEAD + sizeof(struct lp_chunk)),
+ };
}