From 882511dc8c0abded18ba6abdca64938db2652771 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Wed, 23 Sep 2026 03:32:15 -0300 Subject: lift retaining, membership and mode checks out of ephemeral relation --- lib/kernel/Lifecycle.ml | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib/kernel/Lifecycle.ml') diff --git a/lib/kernel/Lifecycle.ml b/lib/kernel/Lifecycle.ml index 20282dd..772cb6e 100644 --- a/lib/kernel/Lifecycle.ml +++ b/lib/kernel/Lifecycle.ml @@ -26,3 +26,15 @@ class virtual counted = object (self) if Atomic.fetch_and_add references (-1) = 1 then self#destroy end + +class retaining inner (owner : lifecycle) = object + inherit counted + initializer ignore owner#reference + + method destroy = + Protocols.Handle.release inner; + owner#release + + method hash = Protocols.Handle.hash inner + method protocols = Protocols.Handle.protocols inner +end -- cgit v1.2.3