From eb11889f1e2002a7d5709db9d4b2979651108bee Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 13 Nov 2014 16:57:19 +0100 Subject: [PATCH] MINOR: task: release the task pool when stopping When we're stopping, we're not going to create new tasks anymore, so let's release the task pool upon each task_free() in order to reduce memory fragmentation. --- include/proto/task.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/proto/task.h b/include/proto/task.h index 469067046..35d77dacc 100644 --- a/include/proto/task.h +++ b/include/proto/task.h @@ -32,6 +32,7 @@ #include #include +#include #include /* Principle of the wait queue. @@ -199,6 +200,8 @@ static inline struct task *task_new(void) static inline void task_free(struct task *t) { pool_free2(pool2_task, t); + if (unlikely(stopping)) + pool_flush2(pool2_task); nb_tasks--; }