Module Atomic.Loc

module Loc: sig .. end

Atomic "locations", such as record fields.


type 'a t = 'a atomic_loc 

This module exposes a dedicated type 'Atomic.Loc.t for atomic locations (storing a value of type 'a) inside objects that may not be atomic references. It is used in particular for atomic record fields: if a record r has an atomic field f of type foo, then [%atomic.loc r.f] has type foo Atomic.Loc.t.

The API below mirrors the API to access atomic references, see the documentation above for more information.

val get : 'a t -> 'a
val set : 'a t -> 'a -> unit
val exchange : 'a t -> 'a -> 'a
val compare_and_set : 'a t -> 'a -> 'a -> bool
val fetch_and_add : int t -> int -> int
val incr : int t -> unit
val decr : int t -> unit