summaryrefslogtreecommitdiffstats
path: root/src/extent.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2016-09-23 19:18:36 (GMT)
committerJason Evans <jasone@canonware.com>2016-09-23 19:21:34 (GMT)
commit0222fb41d1fc8e882f7872999ddaa09193d58912 (patch)
treea9e54ad357551250e2d12f92f861e638b08bad0a /src/extent.c
parent73868b60f22d40404572d124aa7e08de1d70724f (diff)
downloadjemalloc-0222fb41d1fc8e882f7872999ddaa09193d58912.zip
jemalloc-0222fb41d1fc8e882f7872999ddaa09193d58912.tar.gz
jemalloc-0222fb41d1fc8e882f7872999ddaa09193d58912.tar.bz2
Add various mutex ownership assertions.
Diffstat (limited to 'src/extent.c')
-rw-r--r--src/extent.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/extent.c b/src/extent.c
index 3ab48ca..f88c424 100644
--- a/src/extent.c
+++ b/src/extent.c
@@ -356,11 +356,13 @@ extent_deregister(tsdn_t *tsdn, extent_t *extent)
* fits.
*/
static extent_t *
-extent_first_best_fit(arena_t *arena, extent_heap_t extent_heaps[NPSIZES],
- size_t size)
+extent_first_best_fit(tsdn_t *tsdn, arena_t *arena,
+ extent_heap_t extent_heaps[NPSIZES], size_t size)
{
pszind_t pind, i;
+ malloc_mutex_assert_owner(tsdn, &arena->extents_mtx);
+
pind = psz2ind(extent_size_quantize_ceil(size));
for (i = pind; i < NPSIZES; i++) {
extent_t *extent = extent_heap_first(&extent_heaps[i]);
@@ -398,6 +400,8 @@ extent_recycle(tsdn_t *tsdn, arena_t *arena, extent_hooks_t **r_extent_hooks,
rtree_ctx_t *rtree_ctx = tsdn_rtree_ctx(tsdn, &rtree_ctx_fallback);
size_t size, alloc_size, leadsize, trailsize;
+ if (locked)
+ malloc_mutex_assert_owner(tsdn, &arena->extents_mtx);
assert(new_addr == NULL || !slab);
assert(pad == 0 || !slab);
if (config_debug && new_addr != NULL) {
@@ -447,8 +451,10 @@ extent_recycle(tsdn_t *tsdn, arena_t *arena, extent_hooks_t **r_extent_hooks,
rtree_elm_release(tsdn, &extents_rtree, elm);
} else
extent = NULL;
- } else
- extent = extent_first_best_fit(arena, extent_heaps, alloc_size);
+ } else {
+ extent = extent_first_best_fit(tsdn, arena, extent_heaps,
+ alloc_size);
+ }
if (extent == NULL) {
if (!locked)
malloc_mutex_unlock(tsdn, &arena->extents_mtx);
@@ -586,8 +592,6 @@ extent_alloc_cache_impl(tsdn_t *tsdn, arena_t *arena,
assert(usize + pad != 0);
assert(alignment != 0);
- if (locked)
- malloc_mutex_assert_owner(tsdn, &arena->extents_mtx);
commit = true;
extent = extent_recycle(tsdn, arena, r_extent_hooks,