package forester
Source file LaTeX_queue.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23module type S = sig val enqueue : name:string -> packages:string list -> source:string -> unit val process : env:_ Build_latex.env -> max_fibers:int -> ignore_tex_cache : bool -> Eio.Fs.dir_ty Eio.Path.t list end module Make () : S = struct let svg_queue : (string, string list * string) Hashtbl.t = Hashtbl.create 100 let enqueue ~name ~packages ~source = if not @@ Hashtbl.mem svg_queue name then Hashtbl.add svg_queue name (packages, source) let process ~env ~max_fibers ~ignore_tex_cache : Eio.Fs.dir_ty Eio.Path.t list = let build (name, (packages, source)) = Build_latex.build_latex ~ignore_tex_cache ~env ~name ~source ~packages in Hashtbl.to_seq svg_queue |> List.of_seq |> Eio.Fiber.List.map ~max_fibers build |> List.concat end