Stdlib.Atomic(3) OCaml library Stdlib.Atomic(3)

# [NAME](#NAME)

Stdlib.Atomic - no description

# [Module](#Module)

Module Stdlib.Atomic

# [Documentation](#Documentation)

Module **Atomic**  
: **(module Stdlib\_\_Atomic)**

*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-09-15 OCamldoc

---

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