diff options
author | Jason Evans <jasone@canonware.com> | 2016-09-23 19:18:36 (GMT) |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2016-09-23 19:21:34 (GMT) |
commit | 0222fb41d1fc8e882f7872999ddaa09193d58912 (patch) | |
tree | a9e54ad357551250e2d12f92f861e638b08bad0a /src/extent.c | |
parent | 73868b60f22d40404572d124aa7e08de1d70724f (diff) | |
download | jemalloc-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.c | 16 |
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, |