summaryrefslogtreecommitdiffstats
path: root/jemalloc/src/chunk_swap.c
diff options
context:
space:
mode:
authorJason Evans <je@fb.com>2010-12-04 01:05:01 (GMT)
committerJason Evans <je@fb.com>2010-12-04 01:05:01 (GMT)
commit1c4b088b08d3bc7617a34387e196ce03716160bf (patch)
treeff0edcf0e21d136ddf6ffda51b1a205d9f12e646 /jemalloc/src/chunk_swap.c
parent0a36622dd1e2e7da0b833e161ec79398bc30cd5b (diff)
parent0e8d3d2cb9b3c9048b43588271a1e3a837ab186e (diff)
downloadjemalloc-2.1.0.zip
jemalloc-2.1.0.tar.gz
jemalloc-2.1.0.tar.bz2
Merge branch 'dev'2.1.0
Diffstat (limited to 'jemalloc/src/chunk_swap.c')
-rw-r--r--jemalloc/src/chunk_swap.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/jemalloc/src/chunk_swap.c b/jemalloc/src/chunk_swap.c
index ee038ba..cb25ae0 100644
--- a/jemalloc/src/chunk_swap.c
+++ b/jemalloc/src/chunk_swap.c
@@ -185,6 +185,24 @@ chunk_dealloc_swap_record(void *chunk, size_t size)
}
bool
+chunk_in_swap(void *chunk)
+{
+ bool ret;
+
+ assert(swap_enabled);
+
+ malloc_mutex_lock(&swap_mtx);
+ if ((uintptr_t)chunk >= (uintptr_t)swap_base
+ && (uintptr_t)chunk < (uintptr_t)swap_max)
+ ret = true;
+ else
+ ret = false;
+ malloc_mutex_unlock(&swap_mtx);
+
+ return (ret);
+}
+
+bool
chunk_dealloc_swap(void *chunk, size_t size)
{
bool ret;
@@ -219,15 +237,15 @@ chunk_dealloc_swap(void *chunk, size_t size)
} else
madvise(chunk, size, MADV_DONTNEED);
+#ifdef JEMALLOC_STATS
+ swap_avail += size;
+#endif
ret = false;
goto RETURN;
}
ret = true;
RETURN:
-#ifdef JEMALLOC_STATS
- swap_avail += size;
-#endif
malloc_mutex_unlock(&swap_mtx);
return (ret);
}