To focus the search input from anywhere on the page, press the 'S' key.
in-package search v0.1.0
Library
Module
Module type
Parameter
Class
Class type
Moving averages.
This module implements bandwidth counters based on (cumulative) exponential moving average. Each counter is identified by an integer. They are stored in an internal hash table.
See i.e. https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average for the algorithm.
val fresh_state : id:string -> refresh_interval:float -> state
fresh_state ~id ~refresh_interval
initializes the state of a worker handling a family of counter. The worker wakes up every refresh_interval
seconds. id
is a string identifier used for distinguishing distinct Moving_average workers..
create state ~init ~alpha
is a counter with initial value init
and factor alpha
. The counter is added to the state
. It is not removed automatically: it must be removed manually.
val add : t -> int -> unit
add state t v
adds v
to the counter t
.
val on_update : state -> (unit -> unit) -> unit
on_update state f
registers f
to be called on each update of the internal worker associated to state
.
val updated : state -> unit Lwt_condition.t
updated state
is a condition variable that gets signaled on each update of the internal worker..