summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOran Agra <oran@redislabs.com>2019-10-04 14:22:13 +0300
committerOran Agra <oran@redislabs.com>2019-10-04 14:22:13 +0300
commit0f1969f16f541c4a4b17b0063ed764059fe89bc5 (patch)
tree9abf28539b752d231034ea9e66c90a178ef03096
parentbf759cc9c3000de05b6591abbfdc9a3450029278 (diff)
downloadredis-0f1969f16f541c4a4b17b0063ed764059fe89bc5.tar.gz
trim the double implementation of jemalloc purge
-rw-r--r--src/object.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/object.c b/src/object.c
index 697429b84..70022f897 100644
--- a/src/object.c
+++ b/src/object.c
@@ -1450,22 +1450,10 @@ NULL
addReplyVerbatim(c,report,sdslen(report),"txt");
sdsfree(report);
} else if (!strcasecmp(c->argv[1]->ptr,"purge") && c->argc == 2) {
-#if defined(USE_JEMALLOC)
- char tmp[32];
- unsigned narenas = 0;
- size_t sz = sizeof(unsigned);
- if (!je_mallctl("arenas.narenas", &narenas, &sz, NULL, 0)) {
- sprintf(tmp, "arena.%d.purge", narenas);
- if (!je_mallctl(tmp, NULL, 0, NULL, 0)) {
- addReply(c, shared.ok);
- return;
- }
- }
- addReplyError(c, "Error purging dirty pages");
-#else
- addReply(c, shared.ok);
- /* Nothing to do for other allocators. */
-#endif
+ if (jemalloc_purge() == 0)
+ addReply(c, shared.ok);
+ else
+ addReplyError(c, "Error purging dirty pages");
} else {
addReplyErrorFormat(c, "Unknown subcommand or wrong number of arguments for '%s'. Try MEMORY HELP", (char*)c->argv[1]->ptr);
}