Kcas_data.Accumulator
Scalable accumulator.
A scalable accumulator can be used to scalably accumulate an integer value in parallel as long as the accumulated value is read infrequently.
val make : int -> t
make n
returns a new accumulator whose initial value is n
.
module Xt : sig ... end
Explicit transaction log passing on accumulators.
val add : t -> int -> unit
add a n
increments the value of the accumulator a
by n
. add
operations can be performed scalably in parallel.
val incr : t -> unit
incr a
is equivalent to add a 1
.
val decr : t -> unit
decr a
is equivalent to add a (-1)
.
val get : t -> int
get a
returns the current value of the accumulator.
CAUTION: Performing a get
is expensive and can limit scalability.
val set : t -> int -> unit
set a n
sets the current value of the accumulator a
to n
.