Add forking handling for counter module
This commit is contained in:
parent
2097e1945b
commit
4d970f8bfc
@ -52,5 +52,8 @@ counter_accum(tsdn_t *tsdn, counter_accum_t *counter, uint64_t accumbytes) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool counter_accum_init(counter_accum_t *counter, uint64_t interval);
|
bool counter_accum_init(counter_accum_t *counter, uint64_t interval);
|
||||||
|
void counter_prefork(tsdn_t *tsdn, counter_accum_t *counter);
|
||||||
|
void counter_postfork_parent(tsdn_t *tsdn, counter_accum_t *counter);
|
||||||
|
void counter_postfork_child(tsdn_t *tsdn, counter_accum_t *counter);
|
||||||
|
|
||||||
#endif /* JEMALLOC_INTERNAL_COUNTER_H */
|
#endif /* JEMALLOC_INTERNAL_COUNTER_H */
|
||||||
|
@ -31,12 +31,20 @@ struct locked_zu_s {
|
|||||||
# define LOCKEDINT_MTX(mtx) (&(mtx))
|
# define LOCKEDINT_MTX(mtx) (&(mtx))
|
||||||
# define LOCKEDINT_MTX_LOCK(tsdn, mu) malloc_mutex_lock(tsdn, &(mu))
|
# define LOCKEDINT_MTX_LOCK(tsdn, mu) malloc_mutex_lock(tsdn, &(mu))
|
||||||
# define LOCKEDINT_MTX_UNLOCK(tsdn, mu) malloc_mutex_unlock(tsdn, &(mu))
|
# define LOCKEDINT_MTX_UNLOCK(tsdn, mu) malloc_mutex_unlock(tsdn, &(mu))
|
||||||
|
# define LOCKEDINT_MTX_PREFORK(tsdn, mu) malloc_mutex_prefork(tsdn, &(mu))
|
||||||
|
# define LOCKEDINT_MTX_POSTFORK_PARENT(tsdn, mu) \
|
||||||
|
malloc_mutex_postfork_parent(tsdn, &(mu))
|
||||||
|
# define LOCKEDINT_MTX_POSTFORK_CHILD(tsdn, mu) \
|
||||||
|
malloc_mutex_postfork_child(tsdn, &(mu))
|
||||||
#else
|
#else
|
||||||
# define LOCKEDINT_MTX_DECLARE(name)
|
# define LOCKEDINT_MTX_DECLARE(name)
|
||||||
# define LOCKEDINT_MTX(ptr) NULL
|
# define LOCKEDINT_MTX(ptr) NULL
|
||||||
# define LOCKEDINT_MTX_INIT(ptr, name, rank, rank_mode) false
|
# define LOCKEDINT_MTX_INIT(ptr, name, rank, rank_mode) false
|
||||||
# define LOCKEDINT_MTX_LOCK(tsdn, mu) do {} while (0)
|
# define LOCKEDINT_MTX_LOCK(tsdn, mu) do {} while (0)
|
||||||
# define LOCKEDINT_MTX_UNLOCK(tsdn, mu) do {} while (0)
|
# define LOCKEDINT_MTX_UNLOCK(tsdn, mu) do {} while (0)
|
||||||
|
# define LOCKEDINT_MTX_PREFORK(tsdn, mu)
|
||||||
|
# define LOCKEDINT_MTX_POSTFORK_PARENT(tsdn, mu)
|
||||||
|
# define LOCKEDINT_MTX_POSTFORK_CHILD(tsdn, mu)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline uint64_t
|
static inline uint64_t
|
||||||
|
@ -20,3 +20,18 @@ counter_accum_init(counter_accum_t *counter, uint64_t interval) {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
counter_prefork(tsdn_t *tsdn, counter_accum_t *counter) {
|
||||||
|
LOCKEDINT_MTX_PREFORK(tsdn, counter->mtx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
counter_postfork_parent(tsdn_t *tsdn, counter_accum_t *counter) {
|
||||||
|
LOCKEDINT_MTX_POSTFORK_PARENT(tsdn, counter->mtx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
counter_postfork_child(tsdn_t *tsdn, counter_accum_t *counter) {
|
||||||
|
LOCKEDINT_MTX_POSTFORK_CHILD(tsdn, counter->mtx);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user