From: Daan De Meyer Date: Fri, 9 Aug 2024 12:49:52 +0000 (+0200) Subject: basic: Various cleanups for ratelimit functions X-Git-Tag: v257-rc1~705^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2031fe74617a188df5a25ff14f269ff01f169832;p=thirdparty%2Fsystemd.git basic: Various cleanups for ratelimit functions --- diff --git a/src/basic/ratelimit.c b/src/basic/ratelimit.c index 41ca0709e8e..df8c95c562a 100644 --- a/src/basic/ratelimit.c +++ b/src/basic/ratelimit.c @@ -8,37 +8,37 @@ /* Modelled after Linux' lib/ratelimit.c by Dave Young * , which is licensed GPLv2. */ -bool ratelimit_below(RateLimit *r) { +bool ratelimit_below(RateLimit *rl) { usec_t ts; - assert(r); + assert(rl); - if (!ratelimit_configured(r)) + if (!ratelimit_configured(rl)) return true; ts = now(CLOCK_MONOTONIC); - if (r->begin <= 0 || - usec_sub_unsigned(ts, r->begin) > r->interval) { - r->begin = ts; /* Start a new time window */ - r->num = 1; /* Reset counter */ + if (rl->begin <= 0 || + usec_sub_unsigned(ts, rl->begin) > rl->interval) { + rl->begin = ts; /* Start a new time window */ + rl->num = 1; /* Reset counter */ return true; } - if (_unlikely_(r->num == UINT_MAX)) + if (_unlikely_(rl->num == UINT_MAX)) return false; - r->num++; - return r->num <= r->burst; + rl->num++; + return rl->num <= rl->burst; } -unsigned ratelimit_num_dropped(RateLimit *r) { - assert(r); +unsigned ratelimit_num_dropped(const RateLimit *rl) { + assert(rl); - if (r->num == UINT_MAX) /* overflow, return as special case */ + if (rl->num == UINT_MAX) /* overflow, return as special case */ return UINT_MAX; - return LESS_BY(r->num, r->burst); + return LESS_BY(rl->num, rl->burst); } usec_t ratelimit_end(const RateLimit *rl) { diff --git a/src/basic/ratelimit.h b/src/basic/ratelimit.h index 492ea3b48dd..7801ef4270a 100644 --- a/src/basic/ratelimit.h +++ b/src/basic/ratelimit.h @@ -18,13 +18,13 @@ static inline void ratelimit_reset(RateLimit *rl) { rl->num = rl->begin = 0; } -static inline bool ratelimit_configured(RateLimit *rl) { +static inline bool ratelimit_configured(const RateLimit *rl) { return rl->interval > 0 && rl->burst > 0; } -bool ratelimit_below(RateLimit *r); +bool ratelimit_below(RateLimit *rl); -unsigned ratelimit_num_dropped(RateLimit *r); +unsigned ratelimit_num_dropped(const RateLimit *rl); usec_t ratelimit_end(const RateLimit *rl); usec_t ratelimit_left(const RateLimit *rl);