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

Function prof_tdata_merge_iter

deps/jemalloc/src/prof.c:1540–1573  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1538};
1539
1540static prof_tdata_t *
1541prof_tdata_merge_iter(prof_tdata_tree_t *tdatas, prof_tdata_t *tdata,
1542 void *opaque) {
1543 struct prof_tdata_merge_iter_arg_s *arg =
1544 (struct prof_tdata_merge_iter_arg_s *)opaque;
1545
1546 malloc_mutex_lock(arg->tsdn, tdata->lock);
1547 if (!tdata->expired) {
1548 size_t tabind;
1549 union {
1550 prof_tctx_t *p;
1551 void *v;
1552 } tctx;
1553
1554 tdata->dumping = true;
1555 memset(&tdata->cnt_summed, 0, sizeof(prof_cnt_t));
1556 for (tabind = 0; !ckh_iter(&tdata->bt2tctx, &tabind, NULL,
1557 &tctx.v);) {
1558 prof_tctx_merge_tdata(arg->tsdn, tctx.p, tdata);
1559 }
1560
1561 arg->cnt_all.curobjs += tdata->cnt_summed.curobjs;
1562 arg->cnt_all.curbytes += tdata->cnt_summed.curbytes;
1563 if (opt_prof_accum) {
1564 arg->cnt_all.accumobjs += tdata->cnt_summed.accumobjs;
1565 arg->cnt_all.accumbytes += tdata->cnt_summed.accumbytes;
1566 }
1567 } else {
1568 tdata->dumping = false;
1569 }
1570 malloc_mutex_unlock(arg->tsdn, tdata->lock);
1571
1572 return NULL;
1573}
1574
1575static prof_tdata_t *
1576prof_tdata_dump_iter(prof_tdata_tree_t *tdatas, prof_tdata_t *tdata,

Callers

nothing calls this directly

Calls 4

ckh_iterFunction · 0.70
prof_tctx_merge_tdataFunction · 0.70
malloc_mutex_lockFunction · 0.50
malloc_mutex_unlockFunction · 0.50

Tested by

no test coverage detected