This website requires JavaScript.
Explore
Help
Sign in
AI_Assistant
/
pcbjam
Watch
1
Star
0
Fork
You've already forked pcbjam
0
Code
Issues
Pull requests
Projects
Releases
7
Packages
Wiki
Activity
Actions
ae33a100c2
pcbjam
/
.ci-cache-epoch
1 line
2 B
Text
Raw
Normal View
History
Unescape
Escape
fix(asyncify): consume-once root suspensions — replaces the wake-window deferral The deferral (9ca2ac1) modeled the wrong condition and taxed every parked fiber completion with a macrotask hop: under CI load that stretched three-client apply chains and flaked drift-trio S4 twice consecutively (26/26 green locally under stress) — retracted. The actual fatal state, readable in all four prod stacks once seen: a SECOND rewind of the same root suspension. Root suspends once per fiber_swap out of it; two parked fibers completing against one root suspension epoch (a tool fiber + a collab fiber both waking around open:settled) each drive finishContextSwitch(root) — the second rewinds already-consumed data → "unreachable executed" → poisoned runtime, with the wake-side "index out of bounds" as the sibling symptom. Cure: stop exempting root from the validity check the shim already keeps. First consumption proceeds synchronously — zero added latency anywhere; the second is refused ([wx-asyncify] "root suspension already consumed") — the yielded fiber stays properly suspended and resumable, root continues via its real pending resume, libcontext's ghost-epoch contract enforced one layer lower. Root remains exempt only from the internally-parked quarantine (its yield park is routine). .ci-cache-epoch 4→5 (the epoch-4 cache holds the retracted deferral shim). Local: fiber 2/2 + timer 1/1, firefox sweep 20 passed, drift-trio-scenarios kicad-chromium 26/26 under 3-worker stress, web fatal+follow 2/2. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019SE4o46Lnq3hF574FFq8x4
2026-08-01 15:53:18 +02:00
5
Reference in a new issue
Copy permalink