diff options
author | Jason Evans <jasone@canonware.com> | 2017-01-07 02:57:18 (GMT) |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2017-01-07 02:58:45 (GMT) |
commit | d0a3129b8809b9f049dd0a0f8e7921d79cddc104 (patch) | |
tree | 29b2eb88f09596c26729dd08fa15d90038cd0f3d /src/arena.c | |
parent | 363629df88fc9d32cd4efbcc3c1a3eef1bbfe525 (diff) | |
download | jemalloc-d0a3129b8809b9f049dd0a0f8e7921d79cddc104.zip jemalloc-d0a3129b8809b9f049dd0a0f8e7921d79cddc104.tar.gz jemalloc-d0a3129b8809b9f049dd0a0f8e7921d79cddc104.tar.bz2 |
Fix locking in arena_dirty_count().
This was a latent bug, since the function is (intentionally) not used.
Diffstat (limited to 'src/arena.c')
-rw-r--r-- | src/arena.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/arena.c b/src/arena.c index ec8d479..3c31cc8 100644 --- a/src/arena.c +++ b/src/arena.c @@ -639,12 +639,14 @@ arena_dirty_count(tsdn_t *tsdn, arena_t *arena) extent_t *extent; size_t ndirty = 0; - malloc_mutex_assert_owner(tsdn, &arena->extents_mtx); + malloc_mutex_lock(tsdn, &arena->extents_mtx); for (extent = qr_next(&arena->extents_dirty, qr_link); extent != &arena->extents_dirty; extent = qr_next(extent, qr_link)) ndirty += extent_size_get(extent) >> LG_PAGE; + malloc_mutex_unlock(tsdn, &arena->extents_mtx); + return (ndirty); } |