summaryrefslogtreecommitdiff
path: root/src/basic/mempool.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/basic/mempool.c')
-rw-r--r--src/basic/mempool.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/basic/mempool.c b/src/basic/mempool.c
index a5ec8a102..aaf46ceda 100644
--- a/src/basic/mempool.c
+++ b/src/basic/mempool.c
@@ -3,8 +3,10 @@
#include <stdint.h>
#include <stdlib.h>
+//#include "env-util.h"
#include "macro.h"
#include "mempool.h"
+//#include "process-util.h"
#include "util.h"
struct pool {
@@ -70,8 +72,19 @@ void mempool_free_tile(struct mempool *mp, void *p) {
mp->freelist = p;
}
-#if VALGRIND
+bool mempool_enabled(void) {
+ static int b = -1;
+
+ if (!is_main_thread())
+ return false;
+ if (b < 0)
+ b = getenv_bool("SYSTEMD_MEMPOOL") != 0;
+
+ return b;
+}
+
+#if VALGRIND
void mempool_drop(struct mempool *mp) {
struct pool *p = mp->first_pool;
while (p) {
@@ -81,5 +94,4 @@ void mempool_drop(struct mempool *mp) {
p = n;
}
}
-
#endif