From: Marek VavruĊĦa Date: Tue, 9 Jun 2015 17:06:16 +0000 (+0200) Subject: daemon/worker: decommit memory every 1000nth pool delete X-Git-Tag: v1.0.0-beta1~120^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71db340cf1d4decb8a66c6d191aca1884acbba9c;p=thirdparty%2Fknot-resolver.git daemon/worker: decommit memory every 1000nth pool delete --- diff --git a/daemon/worker.c b/daemon/worker.c index 06b165e56..fb97ac6a6 100644 --- a/daemon/worker.c +++ b/daemon/worker.c @@ -14,6 +14,7 @@ along with this program. If not, see . */ +#include #include #include #include @@ -137,6 +138,14 @@ static void qr_task_free(uv_handle_t *handle) array_push(worker->pools, mp_context); } else { mp_delete(mp_context); +#ifdef _GNU_SOURCE + /* Decommit memory every once in a while */ + static int mp_delete_count = 0; + if (++mp_delete_count == 1000) { + malloc_trim(0); + mp_delete_count = 0; + } +#endif } }