diff options
author | Florian Angeletti <florian.angeletti@inria.fr> | 2022-05-02 11:11:08 +0200 |
---|---|---|
committer | Florian Angeletti <florian.angeletti@inria.fr> | 2022-05-03 10:11:09 +0200 |
commit | 8216acb42b68342486d13ef1da0527722768dd90 (patch) | |
tree | 8fa7692b385aef09b56baf00316ec4cdf35968b4 /stdlib/hashtbl.ml | |
parent | ce92d619eacb8a24635d860c252b9f099562c6a2 (diff) | |
download | ocaml-8216acb42b68342486d13ef1da0527722768dd90.tar.gz |
make Hashtbl's randomized atomic
Diffstat (limited to 'stdlib/hashtbl.ml')
-rw-r--r-- | stdlib/hashtbl.ml | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/stdlib/hashtbl.ml b/stdlib/hashtbl.ml index aac9416b62..d1f4ca0bce 100644 --- a/stdlib/hashtbl.ml +++ b/stdlib/hashtbl.ml @@ -52,10 +52,10 @@ let randomized_default = try Sys.getenv "CAMLRUNPARAM" with Not_found -> "" in String.contains params 'R' -let randomized = ref randomized_default +let randomized = Atomic.make randomized_default -let randomize () = randomized := true -let is_randomized () = !randomized +let randomize () = Atomic.set randomized true +let is_randomized () = Atomic.get randomized let prng_key = Domain.DLS.new_key Random.State.make_self_init @@ -70,7 +70,7 @@ let rec power_2_above x n = else if x * 2 > Sys.max_array_length then x else power_2_above (x * 2) n -let create ?(random = !randomized) initial_size = +let create ?(random = Atomic.get randomized) initial_size = let s = power_2_above 16 initial_size in let seed = if random then Random.State.bits (Domain.DLS.get prng_key) else 0 @@ -616,7 +616,7 @@ let of_seq i = replace_seq tbl i; tbl -let rebuild ?(random = !randomized) h = +let rebuild ?(random = Atomic.get randomized) h = let s = power_2_above 16 (Array.length h.data) in let seed = if random then Random.State.bits (Domain.DLS.get prng_key) |