# Module Atomic.Loc

    module Loc: sig .. end

Atomic "locations", such as record fields.

- Since 5.4

    type 'a t = 'a atomic_loc

This module exposes a dedicated type `'a 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