mirror of
https://github.com/c-cube/moonpool.git
synced 2026-01-21 08:46:43 -05:00
add tests for Fut.for_iter
This commit is contained in:
parent
3dee6b8e92
commit
1c7f36007e
1 changed files with 21 additions and 0 deletions
|
|
@ -143,3 +143,24 @@ let () =
|
|||
in
|
||||
|
||||
List.iter run_for [ 1; 10; 50; 1_000 ]
|
||||
|
||||
let () =
|
||||
let n_items = Atomic.make 0 in
|
||||
let fut =
|
||||
Fut.for_iter ~on:pool (fun _yield -> ()) (fun _item -> Atomic.incr n_items)
|
||||
in
|
||||
Fut.wait_block_exn fut;
|
||||
assert (Atomic.get n_items = 0)
|
||||
|
||||
let () =
|
||||
let run_for n =
|
||||
let l = List.init n (fun x -> x) in
|
||||
let sum = Atomic.make 0 in
|
||||
let iter = fun yield -> List.iter yield l in
|
||||
Fut.for_iter ~on:pool iter (fun x ->
|
||||
ignore (Atomic.fetch_and_add sum x : int))
|
||||
|> Fut.wait_block_exn;
|
||||
assert (Atomic.get sum = List.fold_left ( + ) 0 l)
|
||||
in
|
||||
|
||||
List.iter run_for [ 0; 1; 2; 3; 10; 50; 1_000 ]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue