Provided by: ocaml-man_4.13.1-6ubuntu1_all bug

NAME

       Atomic  - This module provides a purely sequential implementation of the concurrent atomic
       references provided by the Multicore OCaml standard library:

Module

       Module   Atomic

Documentation

       Module Atomic
        : sig end

       This  module  provides  a  purely  sequential  implementation  of  the  concurrent  atomic
       references provided by the Multicore OCaml standard library:

       https://github.com/ocaml-multicore/ocaml-multicore/blob/parallel_minor_gc/stdlib/atomic.mli

       This sequential implementation is provided in the interest of compatibility:  when  people
       will  start  writing code to run on Multicore, it would be nice if their use of Atomic was
       backward-compatible with older versions of  OCaml  without  having  to  import  additional
       compatibility layers.

       type 'a t

       An atomic (mutable) reference to a value of type 'a .

       val make : 'a -> 'a t

       Create an atomic reference.

       val get : 'a t -> 'a

       Get the current value of the atomic reference.

       val set : 'a t -> 'a -> unit

       Set a new value for the atomic reference.

       val exchange : 'a t -> 'a -> 'a

       Set a new value for the atomic reference, and return the current value.

       val compare_and_set : 'a t -> 'a -> 'a -> bool

       compare_and_set  r  seen  v  sets  the  new  value  of r to v only if its current value is
       physically equal to seen -- the comparison and the set occur atomically. Returns  true  if
       the comparison succeeded (so the set happened) and false otherwise.

       val fetch_and_add : int t -> int -> int

       fetch_and_add  r  n  atomically  increments  the value of r by n , and returns the current
       value (before the increment).

       val incr : int t -> unit

       incr r atomically increments the value of r by 1 .

       val decr : int t -> unit

       decr r atomically decrements the value of r by 1 .