Lines Matching defs:rl
28 void nghttp2_ratelim_init(nghttp2_ratelim *rl, uint64_t burst, uint64_t rate) {
29 rl->val = rl->burst = burst;
30 rl->rate = rate;
31 rl->tstamp = 0;
34 void nghttp2_ratelim_update(nghttp2_ratelim *rl, uint64_t tstamp) {
37 if (tstamp == rl->tstamp) {
41 if (tstamp > rl->tstamp) {
42 d = tstamp - rl->tstamp;
47 rl->tstamp = tstamp;
49 if (UINT64_MAX / d < rl->rate) {
50 rl->val = rl->burst;
55 gain = rl->rate * d;
57 if (UINT64_MAX - gain < rl->val) {
58 rl->val = rl->burst;
63 rl->val += gain;
64 rl->val = nghttp2_min(rl->val, rl->burst);
67 int nghttp2_ratelim_drain(nghttp2_ratelim *rl, uint64_t n) {
68 if (rl->val < n) {
72 rl->val -= n;