stdcompat__atomic.ml1 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 38include Atomic (* type 'a t = 'a ref let make = ref let get = (!) let set = (:=) let exchange r new_value = let old_value = !r in r := new_value; old_value let compare_and_set r seen v = if !r = seen then begin r := v; true end else false let fetch_and_add r n = let old_value = !r in r := old_value + n; old_value let incr = incr let decr = decr *) let make_contended = make