From c7fd9f1df36a01ac9a1509d1001b0d259005b0f9 Mon Sep 17 00:00:00 2001 From: Shehjar Tikoo Date: Thu, 21 May 2009 01:37:05 +0000 Subject: mem-pool,io-threads: Destroy mem-pool on deallocation Signed-off-by: Anand V. Avati --- libglusterfs/src/mem-pool.c | 14 ++++++++++++++ libglusterfs/src/mem-pool.h | 2 ++ xlators/performance/io-threads/src/io-threads.c | 1 + 3 files changed, 17 insertions(+) diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c index 56a4a1dc2..90df2f39e 100644 --- a/libglusterfs/src/mem-pool.c +++ b/libglusterfs/src/mem-pool.c @@ -197,3 +197,17 @@ mem_put (struct mem_pool *pool, void *ptr) } UNLOCK (&pool->lock); } + + +void +mem_pool_destroy (struct mem_pool *pool) +{ + if (!pool) + return; + + LOCK_DESTROY (&pool->lock); + FREE (pool->pool); + FREE (pool); + + return; +} diff --git a/libglusterfs/src/mem-pool.h b/libglusterfs/src/mem-pool.h index 627945e1f..152c17bb4 100644 --- a/libglusterfs/src/mem-pool.h +++ b/libglusterfs/src/mem-pool.h @@ -52,4 +52,6 @@ mem_pool_new_fn (unsigned long sizeof_type, unsigned long count); void mem_put (struct mem_pool *pool, void *ptr); void *mem_get (struct mem_pool *pool); +void mem_pool_destroy (struct mem_pool *pool); + #endif /* _MEM_POOL_H */ diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c index 3136c9c1a..f16833609 100644 --- a/xlators/performance/io-threads/src/io-threads.c +++ b/xlators/performance/io-threads/src/io-threads.c @@ -2563,6 +2563,7 @@ deallocate_workers (iot_worker_t **workers, end_count = count + start_alloc_idx; for (i = start_alloc_idx; (i < end_count); i++) { if (workers[i] != NULL) { + mem_pool_destroy (workers[i]->req_pool); FREE (workers[i]); workers[i] = NULL; } -- cgit