| #include "jemalloc/internal/jemalloc_preamble.h" |
| #include "jemalloc/internal/jemalloc_internal_includes.h" |
| |
| #include "jemalloc/internal/san.h" |
| |
| bool |
| ecache_init(tsdn_t *tsdn, ecache_t *ecache, extent_state_t state, unsigned ind, |
| bool delay_coalesce) { |
| if (malloc_mutex_init(&ecache->mtx, "extents", WITNESS_RANK_EXTENTS, |
| malloc_mutex_rank_exclusive)) { |
| return true; |
| } |
| ecache->state = state; |
| ecache->ind = ind; |
| ecache->delay_coalesce = delay_coalesce; |
| eset_init(&ecache->eset, state); |
| eset_init(&ecache->guarded_eset, state); |
| |
| return false; |
| } |
| |
| void |
| ecache_prefork(tsdn_t *tsdn, ecache_t *ecache) { |
| malloc_mutex_prefork(tsdn, &ecache->mtx); |
| } |
| |
| void |
| ecache_postfork_parent(tsdn_t *tsdn, ecache_t *ecache) { |
| malloc_mutex_postfork_parent(tsdn, &ecache->mtx); |
| } |
| |
| void |
| ecache_postfork_child(tsdn_t *tsdn, ecache_t *ecache) { |
| malloc_mutex_postfork_child(tsdn, &ecache->mtx); |
| } |