From 8123e95a5f0a225ce5750c39e5a89fea9cbcf0a5 Mon Sep 17 00:00:00 2001 From: "Christoph M. Wintersteiger" Date: Wed, 31 Jul 2024 16:25:01 +0100 Subject: [PATCH] Log exceptions in async notification handler --- src/server.ml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server.ml b/src/server.ml index 97700568..390960b8 100644 --- a/src/server.ml +++ b/src/server.ml @@ -76,7 +76,10 @@ module Make (IO : IO) = struct end let async (self : #base_server) f : unit IO.t = - self#spawn_query_handler f; + self#spawn_query_handler + (fun () -> try f () with err -> + Log.err (fun k -> k "LSP async notification handler failed: %s" (Printexc.to_string err)); + IO.return ()); IO.return () (** A wrapper to more easily reply to notifications *)