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

Function prof_tdata_detach

deps/jemalloc/src/prof.c:2295–2318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2293}
2294
2295static void
2296prof_tdata_detach(tsd_t *tsd, prof_tdata_t *tdata) {
2297 bool destroy_tdata;
2298
2299 malloc_mutex_lock(tsd_tsdn(tsd), tdata->lock);
2300 if (tdata->attached) {
2301 destroy_tdata = prof_tdata_should_destroy(tsd_tsdn(tsd), tdata,
2302 true);
2303 /*
2304 * Only detach if !destroy_tdata, because detaching would allow
2305 * another thread to win the race to destroy tdata.
2306 */
2307 if (!destroy_tdata) {
2308 tdata->attached = false;
2309 }
2310 tsd_prof_tdata_set(tsd, NULL);
2311 } else {
2312 destroy_tdata = false;
2313 }
2314 malloc_mutex_unlock(tsd_tsdn(tsd), tdata->lock);
2315 if (destroy_tdata) {
2316 prof_tdata_destroy(tsd, tdata, true);
2317 }
2318}
2319
2320prof_tdata_t *
2321prof_tdata_reinit(tsd_t *tsd, prof_tdata_t *tdata) {

Callers 2

prof_tdata_reinitFunction · 0.70
prof_tdata_cleanupFunction · 0.70

Calls 5

prof_tdata_destroyFunction · 0.70
malloc_mutex_lockFunction · 0.50
tsd_tsdnFunction · 0.50
malloc_mutex_unlockFunction · 0.50

Tested by

no test coverage detected