Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Atomic.Bigstring
Sourcefetch_and_$op_$type ptr ~pos val
atomically runs *( *$type )((ptr + pos) $op val
, stores the result at ptr + pos
, and returns the original value at ptr + pos
.
Note that pos
is a byte offset into the bigstring. If the offset is not a multiple of the target int width in bytes, the operation will be unaligned and potentially *much* slower than the aligned case.
Pointer to untagged int
Pointer to unboxed int64
val compare_and_swap_int64 :
Bigstring_intf.t ->
pos:int ->
compare_with:int64 ->
set_to:int64 ->
bool
Pointer to unboxed int32
val compare_and_swap_int32 :
Bigstring_intf.t ->
pos:int ->
compare_with:int32 ->
set_to:int32 ->
bool
Pointer to unboxed nativeint
val compare_and_swap_nativeint :
Bigstring_intf.t ->
pos:int ->
compare_with:nativeint ->
set_to:nativeint ->
bool