(** Program for testing magic-trace with operations that take a variable amount of time measured using [mark_start]. *) open! Core let[@inline never] do_delay () = ignore (Core_unix.nanosleep 0.000_1 : float) let min_dur = Magic_trace.Min_duration.of_ns 700_000 let[@inline never] variable_delay n = Magic_trace.mark_start (); let trailing_ones = Ocaml_intrinsics.Int.count_trailing_zeros (lnot n) in let delays = trailing_ones + 1 in for _ = 1 to delays do do_delay () done; if Magic_trace.Min_duration.over min_dur then Magic_trace.take_snapshot_with_arg delays ;; let () = for i = 1 to 10_000 do variable_delay i done ;;