From 030e6d8ab7c2c5ae10690aa4ab0c2490b8d3b50e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reynir=20Bj=C3=B6rnsson?= Date: Tue, 30 Aug 2022 16:25:02 +0200 Subject: [PATCH] Limit the number of concurrent downloads At the moment this is hardcoded to 20 concurrent downloads. --- mirage/unikernel.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mirage/unikernel.ml b/mirage/unikernel.ml index d8950e8..c14460b 100644 --- a/mirage/unikernel.ml +++ b/mirage/unikernel.ml @@ -369,7 +369,9 @@ module Make Logs.info (fun m -> m "git: %s" msg); Git.find_urls store >>= fun urls -> Disk.init kv >>= fun disk -> + let pool = Lwt_pool.create 20 (Fun.const Lwt.return_unit) in Lwt_list.iter_p (fun (url, csums) -> + Lwt_pool.use pool @@ fun () -> HM.fold (fun h v r -> r >>= function | true -> Disk.exists disk h (hex_to_string v)