MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / extent_deregister_impl

Function extent_deregister_impl

deps/jemalloc/src/extent.c:854–875  ·  view source on GitHub ↗

* Removes all pointers to the given extent from the global rtree. */

Source from the content-addressed store, hash-verified

852 * Removes all pointers to the given extent from the global rtree.
853 */
854static void
855extent_deregister_impl(tsdn_t *tsdn, extent_t *extent, bool gdump) {
856 rtree_ctx_t rtree_ctx_fallback;
857 rtree_ctx_t *rtree_ctx = tsdn_rtree_ctx(tsdn, &rtree_ctx_fallback);
858 rtree_leaf_elm_t *elm_a, *elm_b;
859 extent_rtree_leaf_elms_lookup(tsdn, rtree_ctx, extent, true, false,
860 &elm_a, &elm_b);
861
862 extent_lock(tsdn, extent);
863
864 extent_rtree_write_acquired(tsdn, elm_a, elm_b, NULL, SC_NSIZES, false);
865 if (extent_slab_get(extent)) {
866 extent_interior_deregister(tsdn, rtree_ctx, extent);
867 extent_slab_set(extent, false);
868 }
869
870 extent_unlock(tsdn, extent);
871
872 if (config_prof && gdump) {
873 extent_gdump_sub(tsdn, extent);
874 }
875}
876
877static void
878extent_deregister(tsdn_t *tsdn, extent_t *extent) {

Callers 2

extent_deregisterFunction · 0.85

Calls 8

extent_gdump_subFunction · 0.70
extent_lockFunction · 0.50
extent_slab_getFunction · 0.50
extent_slab_setFunction · 0.50
extent_unlockFunction · 0.50

Tested by

no test coverage detected