diff --git a/src/fork_join.ml b/src/fork_join.ml index a90afe72..80044ea3 100644 --- a/src/fork_join.ml +++ b/src/fork_join.ml @@ -87,6 +87,8 @@ let both f g : _ * _ = }; get_exn st +let both_ignore f g = ignore (both f g : unit * unit) + let all_list fs : _ list = let len = List.length fs in let arr = Array.make len None in diff --git a/src/fork_join.mli b/src/fork_join.mli index 3cb4e75e..3ded1404 100644 --- a/src/fork_join.mli +++ b/src/fork_join.mli @@ -14,6 +14,11 @@ val both : (unit -> 'a) -> (unit -> 'b) -> 'a * 'b @since 0.3 {b NOTE} this is only available on OCaml 5. *) +val both_ignore : (unit -> unit) -> (unit -> unit) -> unit +(** Same as [both f g |> ignore]. + @since 0.3 + {b NOTE} this is only available on OCaml 5. *) + val all_list : (unit -> 'a) list -> 'a list (** [all_list fs] runs all functions in [fs] in tasks, and waits for all the results.