package ocaml-compiler
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Official release of OCaml 5.4.0
Install
dune-project
Dependency
Authors
Maintainers
Sources
ocaml-5.4.0.tar.gz
sha256=6fcf1b192e389e54c4f5cb51306ab2baee2a54a25b1770366de5a8b42695996e
doc/src/stdlib/atomic.ml.html
Source file atomic.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56(**************************************************************************) (* *) (* OCaml *) (* *) (* Stephen Dolan, University of Cambridge *) (* *) (* Copyright 2017-2018 University of Cambridge. *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) (* special exception on linking described in the file LICENSE. *) (* *) (**************************************************************************) external ignore : 'a -> unit = "%ignore" module Loc = struct type 'a t = 'a atomic_loc external get : 'a t -> 'a = "%atomic_load_loc" external exchange : 'a t -> 'a -> 'a = "%atomic_exchange_loc" external compare_and_set : 'a t -> 'a -> 'a -> bool = "%atomic_cas_loc" external fetch_and_add : int t -> int -> int = "%atomic_fetch_add_loc" let set t v = ignore (exchange t v) let incr t = ignore (fetch_and_add t 1) let decr t = ignore (fetch_and_add t (-1)) end type !'a t = { mutable contents: 'a [@atomic]; } let make v = { contents = v } external make_contended : 'a -> 'a t = "caml_atomic_make_contended" let get t = t.contents let set t v = t.contents <- v let exchange t v = Loc.exchange [%atomic.loc t.contents] v let compare_and_set t old new_ = Loc.compare_and_set [%atomic.loc t.contents] old new_ let fetch_and_add t incr = Loc.fetch_and_add [%atomic.loc t.contents] incr let incr t = Loc.incr [%atomic.loc t.contents] let decr t = Loc.decr [%atomic.loc t.contents]
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>