From ea3323f62c093f2ee5e09b131ab6e3e23d113838 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 15 Sep 2021 10:38:21 +0200 Subject: [PATCH] CLEANUP: pools: factor all malloc_trim() calls into trim_all_pools() The code was slightly cleaned up by removing repeated occurrences of ifdefs and moving that into a single trim_all_pools() function. --- src/pool.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/pool.c b/src/pool.c index d9d8095c4c..60f21d6773 100644 --- a/src/pool.c +++ b/src/pool.c @@ -40,6 +40,21 @@ int mem_poison_byte = -1; static int mem_fail_rate = 0; #endif +#if defined(HA_HAVE_MALLOC_TRIM) +/* ask the allocator to trim memory pools */ +static void trim_all_pools(void) +{ + if (using_libc_allocator) + malloc_trim(0); +} + +#else + +static void trim_all_pools(void) +{ +} +#endif + /* Try to find an existing shared pool with the same characteristics and * returns it, otherwise creates this one. NULL is returned if no memory * is available for a new creation. Two flags are supported : @@ -275,9 +290,7 @@ void pool_flush(struct pool_head *pool) /* This function might ask the malloc library to trim its buffers. */ void pool_gc(struct pool_head *pool_ctx) { -#if defined(HA_HAVE_MALLOC_TRIM) - malloc_trim(0); -#endif + trim_all_pools(); } #else /* CONFIG_HAP_NO_GLOBAL_POOLS */ @@ -339,9 +352,7 @@ void pool_gc(struct pool_head *pool_ctx) } } -#if defined(HA_HAVE_MALLOC_TRIM) - malloc_trim(0); -#endif + trim_all_pools(); if (!isolated) thread_release(); @@ -358,9 +369,7 @@ void pool_flush(struct pool_head *pool) /* This function might ask the malloc library to trim its buffers. */ void pool_gc(struct pool_head *pool_ctx) { -#if defined(HA_HAVE_MALLOC_TRIM) - malloc_trim(0); -#endif + trim_all_pools(); } #endif /* CONFIG_HAP_POOLS */