xref: /freebsd/contrib/jemalloc/src/counter.c (revision c43cad87172039ccf38172129c79755ea79e6102)
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