summaryrefslogtreecommitdiffstats
path: root/src/arena.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2017-01-07 02:57:18 (GMT)
committerJason Evans <jasone@canonware.com>2017-01-07 02:58:45 (GMT)
commitd0a3129b8809b9f049dd0a0f8e7921d79cddc104 (patch)
tree29b2eb88f09596c26729dd08fa15d90038cd0f3d /src/arena.c
parent363629df88fc9d32cd4efbcc3c1a3eef1bbfe525 (diff)
downloadjemalloc-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.c4
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);
}