package rowex

  1. Overview
  2. Docs
A Read-Optimistic Write-EXclusive data-structure

Install

dune-project
 Dependency

Authors

Maintainers

Sources

bancos-0.0.1.tbz
sha256=f9603b60308f70937f49cc2a32657549bdcb2db197ed5409ce9bd688187d994c
sha512=6cbfffa0c08b9bee5d8729656fb9ad6ea70eaf056ec01923b99eb47e113ddb7b51fa5c2b66b149116fb511f2506cb369ee73c3ca52cec2c372b8f0a7158c894f

doc/rowex.atomic/Atomic/index.html

Module AtomicSource

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.

Sourcetype 'a t

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

Sourceval make : 'a -> 'a t

Create an atomic reference.

Sourceval get : 'a t -> 'a

Get the current value of the atomic reference.

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

Set a new value for the atomic reference.

Sourceval exchange : 'a t -> 'a -> 'a

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

Sourceval 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.

Sourceval 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).

Sourceval incr : int t -> unit

incr r atomically increments the value of r by 1.

Sourceval decr : int t -> unit

decr r atomically decrements the value of r by 1.