diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-09-25 21:51:33 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-09-25 21:51:33 -0300 |
| commit | 584fbca6d920e9a9f91d451667f9380714ac2175 (patch) | |
| tree | a163b916a6f8cb550c8b38ceb01ab01558687a40 /lib/kernel/Lifecycle.ml | |
| parent | c7b754e96714eeeb9d315ee3de402d73a27d47db (diff) | |
| download | RNT-584fbca6d920e9a9f91d451667f9380714ac2175.tar.gz RNT-584fbca6d920e9a9f91d451667f9380714ac2175.zip | |
dune fmt
Diffstat (limited to 'lib/kernel/Lifecycle.ml')
| -rw-r--r-- | lib/kernel/Lifecycle.ml | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/lib/kernel/Lifecycle.ml b/lib/kernel/Lifecycle.ml index 772cb6e..bf0b544 100644 --- a/lib/kernel/Lifecycle.ml +++ b/lib/kernel/Lifecycle.ml @@ -8,33 +8,25 @@ class type virtual controlled_lifecycle = object method virtual destroy : unit end -class null = object - method reference = true - method release = () -end - -class virtual counted = object (self) - val references = Atomic.make 1 - - method virtual destroy : unit - - method reference = - Atomic.incr references; - true - - method release = - 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 +class null = + object + method reference = true + method release = () + end + +class virtual counted = + object (self) + val references = Atomic.make 1 + method virtual destroy : unit + method reference = Atomic.incr references; true + method release = 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 |
