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