mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-06 03:05:30 -05:00
perf: optimize Fut.for_ a bit
remove intermediate array.
This commit is contained in:
parent
0f4e115bc0
commit
6c73afbe5b
1 changed files with 4 additions and 2 deletions
|
|
@ -308,10 +308,12 @@ let wait_list (a : _ t list) : unit t =
|
||||||
join_container_ a ~iter:List.iter ~len:List.length ~map:(fun _f _ -> ())
|
join_container_ a ~iter:List.iter ~len:List.length ~map:(fun _f _ -> ())
|
||||||
|
|
||||||
let for_ ~on n f : unit t =
|
let for_ ~on n f : unit t =
|
||||||
let futs = Array.init n (fun i -> spawn ~on (fun () -> f i)) in
|
|
||||||
join_container_
|
join_container_
|
||||||
~len:(fun () -> n)
|
~len:(fun () -> n)
|
||||||
~iter:(fun f () -> Array.iter f futs)
|
~iter:(fun yield () ->
|
||||||
|
for i = 0 to n - 1 do
|
||||||
|
yield (spawn ~on (fun () -> f i))
|
||||||
|
done)
|
||||||
~map:(fun _f () -> ())
|
~map:(fun _f () -> ())
|
||||||
()
|
()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue