From 705cc47ddf2b379bdcbc7c4dbd061835a777d61a Mon Sep 17 00:00:00 2001 From: kuviman Date: Tue, 2 Dec 2025 00:33:17 +0400 Subject: [PATCH] bring back Linol_eio.spawn for logging uncaught exceptions --- example/template-eio/main.ml | 2 +- src/eio/linol_eio.ml | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/example/template-eio/main.ml b/example/template-eio/main.ml index a0e46b98..25c834b1 100644 --- a/example/template-eio/main.ml +++ b/example/template-eio/main.ml @@ -45,7 +45,7 @@ class lsp_server ~(sw: Eio.Switch.t) = val buffers : (Lsp.Types.DocumentUri.t, state_after_processing) Hashtbl.t = Hashtbl.create 32 - method spawn_query_handler f = Eio.Fiber.fork ~sw f + method spawn_query_handler f = Linol_eio.spawn ~sw f (* We define here a helper method that will: - process a document diff --git a/src/eio/linol_eio.ml b/src/eio/linol_eio.ml index 3a61b2b4..acd90614 100644 --- a/src/eio/linol_eio.ml +++ b/src/eio/linol_eio.ml @@ -51,6 +51,16 @@ module IO_eio : let read_line in_ch = Eio.Buf_read.line in_ch end +(** Spawn function. *) +let spawn ~sw f = + Eio.Fiber.fork ~sw (fun () -> + try + f () + with exn -> + Printf.eprintf "uncaught exception in `spawn`:\n%s\n%!" + (Printexc.to_string exn); + raise exn) + include Lsp.Types include IO_eio