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/counter.h" 5*c43cad87SWarner Losh 6*c43cad87SWarner Losh bool 7*c43cad87SWarner Losh counter_accum_init(counter_accum_t *counter, uint64_t interval) { 8*c43cad87SWarner Losh if (LOCKEDINT_MTX_INIT(counter->mtx, "counter_accum", 9*c43cad87SWarner Losh WITNESS_RANK_COUNTER_ACCUM, malloc_mutex_rank_exclusive)) { 10*c43cad87SWarner Losh return true; 11*c43cad87SWarner Losh } 12*c43cad87SWarner Losh locked_init_u64_unsynchronized(&counter->accumbytes, 0); 13*c43cad87SWarner Losh counter->interval = interval; 14*c43cad87SWarner Losh return false; 15*c43cad87SWarner Losh } 16*c43cad87SWarner Losh 17*c43cad87SWarner Losh void 18*c43cad87SWarner Losh counter_prefork(tsdn_t *tsdn, counter_accum_t *counter) { 19*c43cad87SWarner Losh LOCKEDINT_MTX_PREFORK(tsdn, counter->mtx); 20*c43cad87SWarner Losh } 21*c43cad87SWarner Losh 22*c43cad87SWarner Losh void 23*c43cad87SWarner Losh counter_postfork_parent(tsdn_t *tsdn, counter_accum_t *counter) { 24*c43cad87SWarner Losh LOCKEDINT_MTX_POSTFORK_PARENT(tsdn, counter->mtx); 25*c43cad87SWarner Losh } 26*c43cad87SWarner Losh 27*c43cad87SWarner Losh void 28*c43cad87SWarner Losh counter_postfork_child(tsdn_t *tsdn, counter_accum_t *counter) { 29*c43cad87SWarner Losh LOCKEDINT_MTX_POSTFORK_CHILD(tsdn, counter->mtx); 30*c43cad87SWarner Losh } 31