moonpool/test/t_resource.ml
2023-08-13 22:47:54 -04:00

16 lines
401 B
OCaml

open! Moonpool
let ( let@ ) = ( @@ )
(* test proper resource handling *)
let () =
let a = Atomic.make 0 in
for _i = 1 to 1_000 do
(* give a chance to domains to die *)
if _i mod 100 = 0 then Thread.delay 0.8;
(* allocate a new pool at each iteration *)
let@ p = Pool.with_ ~min:4 () in
Pool.run_wait_block p (fun () -> Atomic.incr a)
done;
assert (Atomic.get a = 1_000)