From 51980807ec189732c8fcfa7b37855f29a2630559 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Wed, 23 Sep 2026 02:55:02 -0300 Subject: release edges on mode failure --- lib/kernel/EphemeralRelation.ml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/kernel/EphemeralRelation.ml') diff --git a/lib/kernel/EphemeralRelation.ml b/lib/kernel/EphemeralRelation.ml index 8e2d2e4..4947869 100644 --- a/lib/kernel/EphemeralRelation.ml +++ b/lib/kernel/EphemeralRelation.ml @@ -138,7 +138,9 @@ module Make (D : DERIVATION) = struct let derive ?pinned ?(edges = []) plan = let open Utilities.Result in - let* declaration = D.modes plan in + let* declaration = + D.modes plan |> Result.map_error (fun c -> List.iter Protocols.Handle.release edges; c) + in Ok ( new ephemeral plan (identity ?pinned plan) declaration (exhaustible declaration BatSet.String.empty) edges |> Protocols.Handle.make ) -- cgit v1.2.3