package ocaml-unikraft-arm64
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
OCaml cross compiler to the freestanding Unikraft arm64 backends
Install
dune-project
Dependency
Authors
Maintainers
Sources
v1.2.0.tar.gz
sha256=ca18a45ef86791d5ffa18436945fbec850b6f3dd68a6a62753b4cb1b6999b19a
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)"
>