2017-01-11 10:06:31 +08:00
|
|
|
#ifndef JEMALLOC_INTERNAL_TICKER_INLINES_H
|
|
|
|
#define JEMALLOC_INTERNAL_TICKER_INLINES_H
|
2016-02-03 12:27:54 +08:00
|
|
|
|
2017-04-22 00:37:34 +08:00
|
|
|
static inline void
|
2017-01-16 08:56:30 +08:00
|
|
|
ticker_init(ticker_t *ticker, int32_t nticks) {
|
2016-02-03 12:27:54 +08:00
|
|
|
ticker->tick = nticks;
|
|
|
|
ticker->nticks = nticks;
|
|
|
|
}
|
|
|
|
|
2017-04-22 00:37:34 +08:00
|
|
|
static inline void
|
2017-01-16 08:56:30 +08:00
|
|
|
ticker_copy(ticker_t *ticker, const ticker_t *other) {
|
2016-02-03 12:27:54 +08:00
|
|
|
*ticker = *other;
|
|
|
|
}
|
|
|
|
|
2017-04-22 00:37:34 +08:00
|
|
|
static inline int32_t
|
2017-01-16 08:56:30 +08:00
|
|
|
ticker_read(const ticker_t *ticker) {
|
2017-01-20 10:15:45 +08:00
|
|
|
return ticker->tick;
|
2016-02-03 12:27:54 +08:00
|
|
|
}
|
|
|
|
|
2017-04-22 00:37:34 +08:00
|
|
|
static inline bool
|
2017-01-16 08:56:30 +08:00
|
|
|
ticker_ticks(ticker_t *ticker, int32_t nticks) {
|
2016-02-03 12:27:54 +08:00
|
|
|
if (unlikely(ticker->tick < nticks)) {
|
|
|
|
ticker->tick = ticker->nticks;
|
2017-01-20 10:15:45 +08:00
|
|
|
return true;
|
2016-02-03 12:27:54 +08:00
|
|
|
}
|
|
|
|
ticker->tick -= nticks;
|
|
|
|
return(false);
|
|
|
|
}
|
|
|
|
|
2017-04-22 00:37:34 +08:00
|
|
|
static inline bool
|
2017-01-16 08:56:30 +08:00
|
|
|
ticker_tick(ticker_t *ticker) {
|
2017-01-20 10:15:45 +08:00
|
|
|
return ticker_ticks(ticker, 1);
|
2016-02-03 12:27:54 +08:00
|
|
|
}
|
|
|
|
|
2017-01-11 10:06:31 +08:00
|
|
|
#endif /* JEMALLOC_INTERNAL_TICKER_INLINES_H */
|