summaryrefslogtreecommitdiffstats
path: root/glusterfsd/src/glusterfsd.c
diff options
context:
space:
mode:
Diffstat (limited to 'glusterfsd/src/glusterfsd.c')
-rw-r--r--glusterfsd/src/glusterfsd.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index 7fd447880..24c45219b 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -584,11 +584,17 @@ static void
cleanup_and_exit (int signum)
{
glusterfs_ctx_t *ctx = NULL;
+ call_pool_t *tmp_pool = NULL;
ctx = glusterfs_ctx_get ();
gf_log ("glusterfsd", GF_LOG_NORMAL, "shutting down");
+ tmp_pool = ctx->pool;
+ mem_pool_destroy (tmp_pool->frame_mem_pool);
+ mem_pool_destroy (tmp_pool->stack_mem_pool);
+ tmp_pool = NULL;
+
glusterfs_pidfile_cleanup (ctx);
exit (0);
@@ -772,6 +778,19 @@ glusterfs_ctx_defaults_init (glusterfs_ctx_t *ctx)
gfd_mt_call_pool_t);
if (!pool)
return -1;
+
+ /* frame_mem_pool size 112 * 16k */
+ pool->frame_mem_pool = mem_pool_new (call_frame_t, 16384);
+
+ if (!pool->frame_mem_pool)
+ return -1;
+
+ /* stack_mem_pool size 256 * 8k */
+ pool->stack_mem_pool = mem_pool_new (call_stack_t, 8192);
+
+ if (!pool->stack_mem_pool)
+ return -1;
+
INIT_LIST_HEAD (&pool->all_frames);
LOCK_INIT (&pool->lock);
ctx->pool = pool;