From c30f3b1c0c6956958a1892184d69dbc77ee7c7b8 Mon Sep 17 00:00:00 2001 From: Shon Feder Date: Sun, 7 Sep 2025 10:44:04 -0400 Subject: [PATCH] Fix possible data races in eio test bin Since this test runs with multiple domains, we cannot mutate plain refs as we were without inviting data races. --- tests/bin/emit1_eio.ml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/bin/emit1_eio.ml b/tests/bin/emit1_eio.ml index 83a9481e..9990b227 100644 --- a/tests/bin/emit1_eio.ml +++ b/tests/bin/emit1_eio.ml @@ -11,22 +11,22 @@ let sleep_outer = ref 2.0 let n_jobs = ref 1 -let num_sleep = Atomic.make 0 - let stress_alloc_ = ref true +let num_sleep = Atomic.make 0 + let stop = Atomic.make false let num_tr = Atomic.make 0 (* Counter used to mark simulated failures *) -let i = ref 0 +let i = Atomic.make 0 let run_job clock _job_id iterations : unit = let@ scope = Atomic.incr num_tr; OT.Trace.with_ ~kind:OT.Span.Span_kind_producer "loop.outer" - ~attrs:[ "i", `Int !i ] + ~attrs:[ "i", `Int (Atomic.get i) ] in for j = 0 to iterations do @@ -52,7 +52,7 @@ let run_job clock _job_id iterations : unit = ~severity:Severity_number_info "inner at %d" j; ]); - incr i; + Atomic.incr i; try Atomic.incr num_tr; @@ -68,7 +68,7 @@ let run_job clock _job_id iterations : unit = let () = Eio.Time.sleep clock !sleep_inner in Atomic.incr num_sleep; - if j = 4 && !i mod 13 = 0 then failwith "oh no"; + if j = 4 && Atomic.get i mod 13 = 0 then failwith "oh no"; (* simulate a failure *) Opentelemetry.Scope.add_event scope (fun () ->