| 558 | } |
| 559 | |
| 560 | static void |
| 561 | prof_leave(tsd_t *tsd, prof_tdata_t *tdata) { |
| 562 | cassert(config_prof); |
| 563 | assert(tdata == prof_tdata_get(tsd, false)); |
| 564 | |
| 565 | malloc_mutex_unlock(tsd_tsdn(tsd), &bt2gctx_mtx); |
| 566 | |
| 567 | if (tdata != NULL) { |
| 568 | bool idump, gdump; |
| 569 | |
| 570 | assert(tdata->enq); |
| 571 | tdata->enq = false; |
| 572 | idump = tdata->enq_idump; |
| 573 | tdata->enq_idump = false; |
| 574 | gdump = tdata->enq_gdump; |
| 575 | tdata->enq_gdump = false; |
| 576 | |
| 577 | if (idump) { |
| 578 | prof_idump(tsd_tsdn(tsd)); |
| 579 | } |
| 580 | if (gdump) { |
| 581 | prof_gdump(tsd_tsdn(tsd)); |
| 582 | } |
| 583 | } |
| 584 | } |
| 585 | |
| 586 | #ifdef JEMALLOC_PROF_LIBUNWIND |
| 587 | void |
no test coverage detected