1*c43cad87SWarner Losh #include "jemalloc/internal/jemalloc_preamble.h" 2*c43cad87SWarner Losh #include "jemalloc/internal/jemalloc_internal_includes.h" 3*c43cad87SWarner Losh 4*c43cad87SWarner Losh #include "jemalloc/internal/san.h" 5*c43cad87SWarner Losh 6*c43cad87SWarner Losh bool 7*c43cad87SWarner Losh ecache_init(tsdn_t *tsdn, ecache_t *ecache, extent_state_t state, unsigned ind, 8*c43cad87SWarner Losh bool delay_coalesce) { 9*c43cad87SWarner Losh if (malloc_mutex_init(&ecache->mtx, "extents", WITNESS_RANK_EXTENTS, 10*c43cad87SWarner Losh malloc_mutex_rank_exclusive)) { 11*c43cad87SWarner Losh return true; 12*c43cad87SWarner Losh } 13*c43cad87SWarner Losh ecache->state = state; 14*c43cad87SWarner Losh ecache->ind = ind; 15*c43cad87SWarner Losh ecache->delay_coalesce = delay_coalesce; 16*c43cad87SWarner Losh eset_init(&ecache->eset, state); 17*c43cad87SWarner Losh eset_init(&ecache->guarded_eset, state); 18*c43cad87SWarner Losh 19*c43cad87SWarner Losh return false; 20*c43cad87SWarner Losh } 21*c43cad87SWarner Losh 22*c43cad87SWarner Losh void 23*c43cad87SWarner Losh ecache_prefork(tsdn_t *tsdn, ecache_t *ecache) { 24*c43cad87SWarner Losh malloc_mutex_prefork(tsdn, &ecache->mtx); 25*c43cad87SWarner Losh } 26*c43cad87SWarner Losh 27*c43cad87SWarner Losh void 28*c43cad87SWarner Losh ecache_postfork_parent(tsdn_t *tsdn, ecache_t *ecache) { 29*c43cad87SWarner Losh malloc_mutex_postfork_parent(tsdn, &ecache->mtx); 30*c43cad87SWarner Losh } 31*c43cad87SWarner Losh 32*c43cad87SWarner Losh void 33*c43cad87SWarner Losh ecache_postfork_child(tsdn_t *tsdn, ecache_t *ecache) { 34*c43cad87SWarner Losh malloc_mutex_postfork_child(tsdn, &ecache->mtx); 35*c43cad87SWarner Losh } 36