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 -> preamble:string -> source:string -> unit val process : env:_ Build_latex.env -> ignore_tex_cache : bool -> Eio.Fs.dir_ty Eio.Path.t list end module Make () : S = struct let svg_queue : (string, string * string) Hashtbl.t = Hashtbl.create 100 let enqueue ~name ~preamble ~source = if not @@ Hashtbl.mem svg_queue name then Hashtbl.add svg_queue name (preamble, source) let process ~env ~ignore_tex_cache : Eio.Fs.dir_ty Eio.Path.t list = let build (name, (preamble, source)) = Build_latex.build_latex ~ignore_tex_cache ~env ~name ~source ~preamble in Hashtbl.to_seq svg_queue |> List.of_seq |> Eio.Fiber.List.map ~max_fibers:20 build |> List.concat end