summaryrefslogtreecommitdiffstats
path: root/jemalloc/src/arena.c
diff options
context:
space:
mode:
authorJason Evans <je@fb.com>2011-03-30 22:02:38 (GMT)
committerJason Evans <je@fb.com>2011-03-30 22:02:38 (GMT)
commit5ef7abf6d846720fb3fb8c737861c99b5ad1d862 (patch)
treea097a1afc0c39b08ec30d6e7de88741047b74b7a /jemalloc/src/arena.c
parentfb4e26aa9e3f5a02fa1527715a79b13aaf253b31 (diff)
parent7d9ebea57d1d82702261cb75a1b885a709b6bcc7 (diff)
downloadjemalloc-2.2.1.zip
jemalloc-2.2.1.tar.gz
jemalloc-2.2.1.tar.bz2
Merge branch 'dev'2.2.1
Diffstat (limited to 'jemalloc/src/arena.c')
-rw-r--r--jemalloc/src/arena.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/jemalloc/src/arena.c b/jemalloc/src/arena.c
index 1954da9..9aaf47f 100644
--- a/jemalloc/src/arena.c
+++ b/jemalloc/src/arena.c
@@ -868,9 +868,10 @@ arena_purge(arena_t *arena, bool all)
}
assert(ndirty == arena->ndirty);
#endif
- assert(arena->ndirty > arena->npurgatory);
+ assert(arena->ndirty > arena->npurgatory || all);
assert(arena->ndirty > chunk_npages || all);
- assert((arena->nactive >> opt_lg_dirty_mult) < arena->ndirty || all);
+ assert((arena->nactive >> opt_lg_dirty_mult) < (arena->ndirty -
+ npurgatory) || all);
#ifdef JEMALLOC_STATS
arena->stats.npurge++;
@@ -882,8 +883,10 @@ arena_purge(arena_t *arena, bool all)
* multiple threads from racing to reduce ndirty below the threshold.
*/
npurgatory = arena->ndirty - arena->npurgatory;
- if (all == false)
+ if (all == false) {
+ assert(npurgatory >= arena->nactive >> opt_lg_dirty_mult);
npurgatory -= arena->nactive >> opt_lg_dirty_mult;
+ }
arena->npurgatory += npurgatory;
while (npurgatory > 0) {