ratecheck
, ppsratecheck
—
event rate limiting
#include <sys/time.h>
int
ratecheck
(struct
timeval *lasttime, struct
timeval *mininterval);
int
ppsratecheck
(struct
timeval *lasttime, int
*curpps, int
maxpps);
The ratecheck
and ppsratecheck
functions facilitate rate-limiting of arbitrary events. The former enforces a
minimum interval between events while the latter enforces a maximum number of
events per second.
The ratecheck
function compares the
current time to the value pointed to by lasttime. If
the difference is equal to or greater than
mininterval, it returns a non-zero value and updates
lasttime to the current time. Otherwise, it returns
zero.
The ppsratecheck
function first compares
the current time to lasttime. If at least a full
second has passed, the value pointed to by the curpps
argument is reset to 1 and lasttime is updated to the
current time. Otherwise, curpps is incremented and
lasttime is left untouched. In either case,
ppsratecheck
returns a non-zero value if and only if
the updated curpps is less than or equal to
maxpps or maxpps is
negative.
The ratecheck
and ppsratecheck
functions first appeared in FreeBSD 5.1.