Spec-Zone.ru › OCaml 4.14

Модуль Atomic

module Atomic: sig .. end

Этот модуль предоставляет чисто последовательную реализацию атомарных ссылок, предоставляемых стандартной библиотекой Multicore OCaml:

https://github.com/ocaml-multicore/ocaml-multicore/blob/parallel_minor_gc/stdlib/atomic.mli

Эта последовательная реализация предоставляется для обеспечения совместимости: когда люди начнут писать код для выполнения на Multicore, будет неплохо, если их использование Atomic будет обратно совместимо со старыми версиями OCaml без необходимости импорта дополнительных слоев совместимости.

  • Since 4.12
type 'a t 

Атомарная (изменяемая) ссылка на значение типа 'a.

val make : 'a -> 'a t

Создать атомарную ссылку.

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

compare_and_set r seen v устанавливает новое значение r в v только в том случае, если его текущее значение физически равно seen - сравнение и установка происходят атомарно. Возвращает true если сравнение прошло успешно (то есть установка произошла) и false в противном случае.

val fetch_and_add : int t -> int -> int

fetch_and_add r n атомарно увеличивает значение r на n, и возвращает текущее значение (до увеличения).

val incr : int t -> unit

incr r атомарно увеличивает значение r на 1.

val decr : int t -> unit

decr r атомарно уменьшает значение r на 1.

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/4.14/htmlman/libref/Atomic.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API