From 30f987d1bf4b4dc903a11a9cfd6a8d2ca8df0921 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Wed, 14 Sep 2022 19:37:43 -0400 Subject: [PATCH] test: make TLS test faster (do not yield as much) --- tests/thread/t_local_storage.ml | 38 ++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/tests/thread/t_local_storage.ml b/tests/thread/t_local_storage.ml index e2f6cd3e..99ccea2f 100644 --- a/tests/thread/t_local_storage.ml +++ b/tests/thread/t_local_storage.ml @@ -2,28 +2,28 @@ module Test = (val Containers_testlib.make ~__FILE__ ()) open Test module L = CCLocal_storage;; -t @@ fun () -> -let var = L.create () in +t (fun () -> + let var = L.create () in -let sum_of_res = CCAtomic.make 0 in -let n = 1_000 in + let sum_of_res = CCAtomic.make 0 in + let n = 10_000 in -let run1 () = - L.with_ var 0 @@ fun () -> - for _i = 1 to n do - let x = L.get_exn var in - Thread.yield (); - L.set var (x + 1) - done; - ignore (CCAtomic.fetch_and_add sum_of_res (L.get_exn var) : int) -in + let run1 () = + L.with_ var 0 @@ fun () -> + for _i = 1 to n do + let x = L.get_exn var in + if _i mod 50 = 0 then Thread.yield (); + L.set var (x + 1) + done; + ignore (CCAtomic.fetch_and_add sum_of_res (L.get_exn var) : int) + in -let threads = Array.init 16 (fun _ -> Thread.create run1 ()) in -Array.iter Thread.join threads; + let threads = Array.init 16 (fun _ -> Thread.create run1 ()) in + Array.iter Thread.join threads; -assert_equal ~printer:string_of_int (n * 16) (CCAtomic.get sum_of_res); + assert_equal ~printer:string_of_int (n * 16) (CCAtomic.get sum_of_res); -(* cleanup *) -assert_equal ~printer:string_of_int 0 (L.n_entries var); + (* cleanup *) + assert_equal ~printer:string_of_int 0 (L.n_entries var); -true + true)