diff --git a/src/basic/ratelimit.c b/src/basic/ratelimit.c index 5675ec2f46..41ca0709e8 100644 --- a/src/basic/ratelimit.c +++ b/src/basic/ratelimit.c @@ -49,3 +49,12 @@ usec_t ratelimit_end(const RateLimit *rl) { return usec_add(rl->begin, rl->interval); } + +usec_t ratelimit_left(const RateLimit *rl) { + assert(rl); + + if (rl->begin == 0) + return 0; + + return usec_sub_unsigned(ratelimit_end(rl), now(CLOCK_MONOTONIC)); +} diff --git a/src/basic/ratelimit.h b/src/basic/ratelimit.h index 048084ece4..bb7160a895 100644 --- a/src/basic/ratelimit.h +++ b/src/basic/ratelimit.h @@ -25,3 +25,4 @@ bool ratelimit_below(RateLimit *r); unsigned ratelimit_num_dropped(RateLimit *r); usec_t ratelimit_end(const RateLimit *rl); +usec_t ratelimit_left(const RateLimit *rl);