Phase F lifetime: eager reclaim + the ring's population named — owning handles remain the only real fix
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Td4ujboGuAw26jvbDQzehj
This commit is contained in:
parent
7122cdc461
commit
d185f5c1d2
2 changed files with 22 additions and 1 deletions
|
|
@ -1220,6 +1220,27 @@ needs a sched-id→context reverse map so a divergent `old` side is corrected at
|
||||||
the jump instead of poisoning `return_to`). Until then, `fiber-resume-park`
|
the jump instead of poisoning `return_to`). Until then, `fiber-resume-park`
|
||||||
scenario 2 stays pinned on the quarantine beacon — deliberately.
|
scenario 2 stays pinned on the quarantine beacon — deliberately.
|
||||||
|
|
||||||
|
### Lifetime increment (2026-08-09): eager reclaim landed, and the ring's real
|
||||||
|
### population measured
|
||||||
|
|
||||||
|
`release_context` now reclaims a FINISHED coroutine's fiber (the 512K asyncify
|
||||||
|
buffer + registry entry) at release time (`release-reclaimed` beacon) instead
|
||||||
|
of retaining it in the grace ring until overflow — safe because the flip's
|
||||||
|
terminal finish refuses transfers into Finished and `sched_id == 0` takes the
|
||||||
|
recorded ghost contract. Gates: battery 395/1, kicad suite 139/1.
|
||||||
|
|
||||||
|
**The measurement that matters: the eager path fired ZERO times across the
|
||||||
|
whole suite.** Combined with the historic `grace-ring-evict: 0` and Phase A's
|
||||||
|
`over-capacity: 33, none evictable`, the picture is now precise: **the ring's
|
||||||
|
population is entirely released-but-NEVER-FINISHED tool coroutines** — canvas
|
||||||
|
tools are persistent event loops whose COROUTINE objects are released while
|
||||||
|
their bodies still hold re-enterable state. No eviction policy can touch them;
|
||||||
|
only scheduler-owned coroutine lifetimes (owning handles in
|
||||||
|
`TOOL_MANAGER`/`coroutine.h` — the §5 Phase B remainder, gated on the
|
||||||
|
upstream-divergence decision) remove the population. Until then the ring is
|
||||||
|
the correct containment: bounded at 32, over-capacity silent at the flip, and
|
||||||
|
the eager path stands ready for any flow that does complete-and-release.
|
||||||
|
|
||||||
### Prod-provider smoke (2026-08-08) — done, with one pre-existing red bisected
|
### Prod-provider smoke (2026-08-08) — done, with one pre-existing red bisected
|
||||||
|
|
||||||
Against the live web stack (playwright-web config, reference backend :3060):
|
Against the live web stack (playwright-web config, reference backend :3060):
|
||||||
|
|
|
||||||
2
kicad
2
kicad
|
|
@ -1 +1 @@
|
||||||
Subproject commit 6e6cf51027a5b045629518935d78a7683b43535a
|
Subproject commit ea4a37d9f81cecc34b1e0a15a6aa619c693824eb
|
||||||
Loading…
Reference in a new issue