aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/kernel/EphemeralRelation.ml4
1 files changed, 3 insertions, 1 deletions
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 )