Clean up background thread sleep computation

Isolate the computation of purge interval from background thread logic and
move into more suitable file.
This commit is contained in:
Alex Lapenkou
2021-07-16 14:53:25 -07:00
committed by Qi Wang
parent 6630c59896
commit 4b633b9a81
3 changed files with 133 additions and 130 deletions

View File

@@ -3,6 +3,8 @@
#include "jemalloc/internal/smoothstep.h"
#define DECAY_UNBOUNDED_TIME_TO_PURGE ((uint64_t)-1)
/*
* The decay_t computes the number of pages we should purge at any given time.
* Page allocators inform a decay object when pages enter a decay-able state
@@ -146,4 +148,13 @@ void decay_reinit(decay_t *decay, nstime_t *cur_time, ssize_t decay_ms);
bool decay_maybe_advance_epoch(decay_t *decay, nstime_t *new_time,
size_t current_npages);
/*
* Calculates wait time until at least npages_threshold pages should be purged.
*
* Returns number of nanoseconds or DECAY_UNBOUNDED_TIME_TO_PURGE in case of
* indefinite wait.
*/
uint64_t decay_ns_until_purge(decay_t *decay, size_t npages_current,
uint64_t npages_threshold);
#endif /* JEMALLOC_INTERNAL_DECAY_H */