MCPcopy Create free account
hub / github.com/F-Stack/f-stack / extent_register_impl

Function extent_register_impl

app/redis-6.2.6/deps/jemalloc/src/extent.c:737–768  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

735}
736
737static bool
738extent_register_impl(tsdn_t *tsdn, extent_t *extent, bool gdump_add) {
739 rtree_ctx_t rtree_ctx_fallback;
740 rtree_ctx_t *rtree_ctx = tsdn_rtree_ctx(tsdn, &rtree_ctx_fallback);
741 rtree_leaf_elm_t *elm_a, *elm_b;
742
743 /*
744 * We need to hold the lock to protect against a concurrent coalesce
745 * operation that sees us in a partial state.
746 */
747 extent_lock(tsdn, extent);
748
749 if (extent_rtree_leaf_elms_lookup(tsdn, rtree_ctx, extent, false, true,
750 &elm_a, &elm_b)) {
751 return true;
752 }
753
754 szind_t szind = extent_szind_get_maybe_invalid(extent);
755 bool slab = extent_slab_get(extent);
756 extent_rtree_write_acquired(tsdn, elm_a, elm_b, extent, szind, slab);
757 if (slab) {
758 extent_interior_register(tsdn, rtree_ctx, extent, szind);
759 }
760
761 extent_unlock(tsdn, extent);
762
763 if (config_prof && gdump_add) {
764 extent_gdump_add(tsdn, extent);
765 }
766
767 return false;
768}
769
770static bool
771extent_register(tsdn_t *tsdn, extent_t *extent) {

Callers 2

extent_registerFunction · 0.85

Calls 8

extent_lockFunction · 0.85
extent_slab_getFunction · 0.85
extent_interior_registerFunction · 0.85
extent_unlockFunction · 0.85
extent_gdump_addFunction · 0.85

Tested by

no test coverage detected