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

Function prof_tctx_merge_tdata

deps/jemalloc/src/prof.c:1326–1355  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1324}
1325
1326static void
1327prof_tctx_merge_tdata(tsdn_t *tsdn, prof_tctx_t *tctx, prof_tdata_t *tdata) {
1328 malloc_mutex_assert_owner(tsdn, tctx->tdata->lock);
1329
1330 malloc_mutex_lock(tsdn, tctx->gctx->lock);
1331
1332 switch (tctx->state) {
1333 case prof_tctx_state_initializing:
1334 malloc_mutex_unlock(tsdn, tctx->gctx->lock);
1335 return;
1336 case prof_tctx_state_nominal:
1337 tctx->state = prof_tctx_state_dumping;
1338 malloc_mutex_unlock(tsdn, tctx->gctx->lock);
1339
1340 memcpy(&tctx->dump_cnts, &tctx->cnts, sizeof(prof_cnt_t));
1341
1342 tdata->cnt_summed.curobjs += tctx->dump_cnts.curobjs;
1343 tdata->cnt_summed.curbytes += tctx->dump_cnts.curbytes;
1344 if (opt_prof_accum) {
1345 tdata->cnt_summed.accumobjs +=
1346 tctx->dump_cnts.accumobjs;
1347 tdata->cnt_summed.accumbytes +=
1348 tctx->dump_cnts.accumbytes;
1349 }
1350 break;
1351 case prof_tctx_state_dumping:
1352 case prof_tctx_state_purgatory:
1353 not_reached();
1354 }
1355}
1356
1357static void
1358prof_tctx_merge_gctx(tsdn_t *tsdn, prof_tctx_t *tctx, prof_gctx_t *gctx) {

Callers 1

prof_tdata_merge_iterFunction · 0.70

Calls 3

malloc_mutex_lockFunction · 0.50
malloc_mutex_unlockFunction · 0.50

Tested by

no test coverage detected