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);
|
||||
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 */
|
||||
|
@ -31,12 +31,20 @@ struct locked_zu_s {
|
||||
# define LOCKEDINT_MTX(mtx) (&(mtx))
|
||||
# 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_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
|
||||
# define LOCKEDINT_MTX_DECLARE(name)
|
||||
# define LOCKEDINT_MTX(ptr) NULL
|
||||
# define LOCKEDINT_MTX_INIT(ptr, name, rank, rank_mode) false
|
||||
# define LOCKEDINT_MTX_LOCK(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
|
||||
|
||||
static inline uint64_t
|
||||
|
@ -20,3 +20,18 @@ counter_accum_init(counter_accum_t *counter, uint64_t interval) {
|
||||
|
||||
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