package ocaml_intrinsics

  1. Overview
  2. Docs

fetch_and_$op_$type ptr val atomically runs *( *$type )ptr $op val, stores the result at ptr, and returns the original value at ptr.

Pointer to untagged int

val fetch_and_add : Ext_pointer.t -> int -> int
val fetch_and_sub : Ext_pointer.t -> int -> int
val compare_and_swap : Ext_pointer.t -> compare_with:int -> set_to:int -> bool

Pointer to unboxed int64

val fetch_and_add_int64 : Ext_pointer.t -> int64 -> int64
val fetch_and_sub_int64 : Ext_pointer.t -> int64 -> int64
val compare_and_swap_int64 : Ext_pointer.t -> compare_with:int64 -> set_to:int64 -> bool

Pointer to unboxed int32

val fetch_and_add_int32 : Ext_pointer.t -> int32 -> int32
val fetch_and_sub_int32 : Ext_pointer.t -> int32 -> int32
val compare_and_swap_int32 : Ext_pointer.t -> compare_with:int32 -> set_to:int32 -> bool

Pointer to unboxed nativeint

val fetch_and_add_nativeint : Ext_pointer.t -> nativeint -> nativeint
val fetch_and_sub_nativeint : Ext_pointer.t -> nativeint -> nativeint
val compare_and_swap_nativeint : Ext_pointer.t -> compare_with:nativeint -> set_to:nativeint -> bool
OCaml

Innovation. Community. Security.