aboutsummaryrefslogtreecommitdiffstats
path: root/lib/backend/managers/Lifecycle.mli
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-07-21 01:35:52 -0300
committerGitHub <noreply@github.com>2026-07-21 01:35:52 -0300
commit209383a11bbf749dcc830fac8e0938bca0b58191 (patch)
tree59cf28d47b4065d3dfa4ecd2b1390b2f54172061 /lib/backend/managers/Lifecycle.mli
parent3e62b0d7dc814fbdcedb06bb79b22669bc9d4b40 (diff)
downloadRNT-209383a11bbf749dcc830fac8e0938bca0b58191.tar.gz
RNT-209383a11bbf749dcc830fac8e0938bca0b58191.zip
Lifecycle Manager
Diffstat (limited to 'lib/backend/managers/Lifecycle.mli')
-rw-r--r--lib/backend/managers/Lifecycle.mli17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/backend/managers/Lifecycle.mli b/lib/backend/managers/Lifecycle.mli
new file mode 100644
index 0000000..f8cec1a
--- /dev/null
+++ b/lib/backend/managers/Lifecycle.mli
@@ -0,0 +1,17 @@
+type tree = Object.rnt_object_tree
+
+(* A collected runtime object that still needs an external teardown: a session
+ to close, and later a transaction to roll back. The caller drains these. *)
+type disposal = {path: Concepts.Path.t; kind: Object.rnt_object_kind}
+
+val monitor : tree -> Concepts.Path.t -> tree
+val pin : tree -> Concepts.Path.t -> tree
+val unpin : tree -> Concepts.Path.t -> tree
+val is_eligible_for_gc : tree -> Concepts.Path.t -> bool
+val contention : tree -> Concepts.Path.t -> bool
+
+val unmonitor :
+ tree -> Concepts.Path.t -> (tree * disposal BatFingerTree.t, Concepts.Condition.condition) result
+
+val collect :
+ tree -> Concepts.Path.t -> (tree * disposal BatFingerTree.t, Concepts.Condition.condition) result