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

Function prof_tdata_init_impl

deps/jemalloc/src/prof.c:2200–2244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2198}
2199
2200static prof_tdata_t *
2201prof_tdata_init_impl(tsd_t *tsd, uint64_t thr_uid, uint64_t thr_discrim,
2202 char *thread_name, bool active) {
2203 prof_tdata_t *tdata;
2204
2205 cassert(config_prof);
2206
2207 /* Initialize an empty cache for this thread. */
2208 tdata = (prof_tdata_t *)iallocztm(tsd_tsdn(tsd), sizeof(prof_tdata_t),
2209 sz_size2index(sizeof(prof_tdata_t)), false, NULL, true,
2210 arena_get(TSDN_NULL, 0, true), true);
2211 if (tdata == NULL) {
2212 return NULL;
2213 }
2214
2215 tdata->lock = prof_tdata_mutex_choose(thr_uid);
2216 tdata->thr_uid = thr_uid;
2217 tdata->thr_discrim = thr_discrim;
2218 tdata->thread_name = thread_name;
2219 tdata->attached = true;
2220 tdata->expired = false;
2221 tdata->tctx_uid_next = 0;
2222
2223 if (ckh_new(tsd, &tdata->bt2tctx, PROF_CKH_MINITEMS, prof_bt_hash,
2224 prof_bt_keycomp)) {
2225 idalloctm(tsd_tsdn(tsd), tdata, NULL, NULL, true, true);
2226 return NULL;
2227 }
2228
2229 tdata->prng_state = (uint64_t)(uintptr_t)tdata;
2230 prof_sample_threshold_update(tdata);
2231
2232 tdata->enq = false;
2233 tdata->enq_idump = false;
2234 tdata->enq_gdump = false;
2235
2236 tdata->dumping = false;
2237 tdata->active = active;
2238
2239 malloc_mutex_lock(tsd_tsdn(tsd), &tdatas_mtx);
2240 tdata_tree_insert(&tdatas, tdata);
2241 malloc_mutex_unlock(tsd_tsdn(tsd), &tdatas_mtx);
2242
2243 return tdata;
2244}
2245
2246prof_tdata_t *
2247prof_tdata_init(tsd_t *tsd) {

Callers 2

prof_tdata_initFunction · 0.70
prof_tdata_reinitFunction · 0.70

Calls 10

prof_tdata_mutex_chooseFunction · 0.70
ckh_newFunction · 0.70
iallocztmFunction · 0.50
tsd_tsdnFunction · 0.50
sz_size2indexFunction · 0.50
arena_getFunction · 0.50
idalloctmFunction · 0.50
malloc_mutex_lockFunction · 0.50
malloc_mutex_unlockFunction · 0.50

Tested by

no test coverage detected