Atomic(3) OCaml library Atomic(3)

# [NAME](#NAME)

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

# [Module](#Module)

Module Atomic

# [Documentation](#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.

**Since** 4.12

*type* **'a** *t*

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

*val make* : **'a -&gt; 'a t**

Create an atomic reference.

*val get* : **'a t -&gt; 'a**

Get the current value of the atomic reference.

*val set* : **'a t -&gt; 'a -&gt; unit**

Set a new value for the atomic reference.

*val exchange* : **'a t -&gt; 'a -&gt; 'a**

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

*val compare\_and\_set* : **'a t -&gt; 'a -&gt; 'a -&gt; 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 -&gt; int -&gt; 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 -&gt; unit**

**incr r** atomically increments the value of **r** by **1** .

*val decr* : **int t -&gt; unit**

**decr r** atomically decrements the value of **r** by **1** .

2026-10-27 OCamldoc

---

Document: Atomic(3o) from ocaml-4 4.14.4-r4 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
