diff options
| author | Jason Evans <je@fb.com> | 2011-03-30 22:02:38 (GMT) |
|---|---|---|
| committer | Jason Evans <je@fb.com> | 2011-03-30 22:02:38 (GMT) |
| commit | 5ef7abf6d846720fb3fb8c737861c99b5ad1d862 (patch) | |
| tree | a097a1afc0c39b08ec30d6e7de88741047b74b7a /jemalloc/src/arena.c | |
| parent | fb4e26aa9e3f5a02fa1527715a79b13aaf253b31 (diff) | |
| parent | 7d9ebea57d1d82702261cb75a1b885a709b6bcc7 (diff) | |
| download | jemalloc-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.c | 9 |
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) { |
