summaryrefslogtreecommitdiff
path: root/src/zmalloc.h
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2017-01-10 11:25:39 +0100
committerantirez <antirez@gmail.com>2017-01-10 11:25:39 +0100
commit173d692bc2e87d476a8ef45b671cf9ac98695c15 (patch)
treef155e0dccacab019834d758584cee7f3e864dcb7 /src/zmalloc.h
parent5ab6a54cc619e750daac59baef7b9f9dc1f87db9 (diff)
downloadredis-173d692bc2e87d476a8ef45b671cf9ac98695c15.tar.gz
Defrag: activate it only if running modified version of Jemalloc.
This commit also includes minor aesthetic changes like removal of trailing spaces.
Diffstat (limited to 'src/zmalloc.h')
-rw-r--r--src/zmalloc.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/zmalloc.h b/src/zmalloc.h
index 2f7015490..b6d4e1d97 100644
--- a/src/zmalloc.h
+++ b/src/zmalloc.h
@@ -65,12 +65,17 @@
#define ZMALLOC_LIB "libc"
#endif
+/* We can enable the Redis defrag capabilities only if we are using Jemalloc
+ * and the version used is our special version modified for Redis having
+ * the ability to return per-allocation fragmentation hints. */
+#if defined(USE_JEMALLOC) && defined(JEMALLOC_FRAG_HINT)
+#define HAVE_DEFRAG
+#endif
+
void *zmalloc(size_t size);
void *zcalloc(size_t size);
void *zrealloc(void *ptr, size_t size);
void zfree(void *ptr);
-void zfree_no_tcache(void *ptr);
-void *zmalloc_no_tcache(size_t size);
char *zstrdup(const char *s);
size_t zmalloc_used_memory(void);
void zmalloc_enable_thread_safeness(void);
@@ -82,6 +87,11 @@ size_t zmalloc_get_smap_bytes_by_field(char *field, long pid);
size_t zmalloc_get_memory_size(void);
void zlibc_free(void *ptr);
+#ifdef HAVE_DEFRAG
+void zfree_no_tcache(void *ptr);
+void *zmalloc_no_tcache(size_t size);
+#endif
+
#ifndef HAVE_MALLOC_SIZE
size_t zmalloc_size(void *ptr);
#endif