pub enum AdmitMode {
Lease,
VerifyOnly,
}Expand description
Whether an admit acquires a releasable holder lease or only checks admissibility.
Verifier-only surfaces (portable/preflight verdicts, adapter one-shot
evaluations) answer “would this child admit?” as part of producing a
verdict, but they have NO cleanup path that would release a lease. Taking a
holder lease on those paths leaks the refcount upward forever: a later real
dispatch that unwinds its own lease can never drive holders back to zero,
so the edge stays pinned and oversubscribing siblings are wrongly denied
until the parent is evicted. VerifyOnly runs the same admissibility checks
(and commits a fresh child’s share for sibling-sum accounting) WITHOUT
acquiring a lease it will never release.
Variants§
Lease
Acquire one holder lease the caller MUST release on its cleanup/drop
path. A fresh edge is inserted with holders == 1; an idempotent
re-admit takes an ADDITIONAL lease (holders += 1).
VerifyOnly
Check admissibility only. A fresh admissible child commits its share
with holders == 0 (charged for sibling-sum accounting, but no
releasable holder exists); an already-present edge is left completely
unchanged. Never increments holders, so a surface with no release path
cannot pin the edge past its real holders.