Repository navigation
$ #74 in process: every pass and grant the loop hands a stage is bound to the unit's call - #1027
Draft
MattJackson wants to merge 1 commit into
Draft
MattJackson wants to merge 1 commit into
MattJackson wants to merge 1 commit into
Conversation
…d to the unit's call - The loop binds an unbound unit to a fresh call (Kernel::next_call) at run_unit_async, open_unit and exit; every pass and grant it mints is mint_bound to that call (32 sites). - The Route stage compares: a pass not bound to the unit's call answers Failed(Route, Replayed). - The money seam: a Hold and a HoldAccrual record their call; HoldCell::admit refuses another call's grant (CellError::CallMismatch, the hold back whole), convert_at_parent_exit returns the accrual on a mismatch; the loop answers both as Replayed. - The plane driver's probe is its own call; its Route pass is bound to it. - REDs: a grant of another call neither admits nor converts; a pass of another call (or an unbound one) is not presented at the stage; a unit is bound once.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
$, DRAFT: money lands alone (rule 15). Coordinator GO for the in-process half of #74.What changes
run_unit_async,open_unitandexitbind an unbound unit to a fresh call (Kernel::next_call); a unit that is already bound keeps its call.UnitCtxgainscall: CallId, and callers build itCallId::UNBOUND.mint_bound(seal, ctx.call), andscreened/screened_bycarry the call.Failed(Route, Replayed).HoldandHoldAccrualrecord the call of the grant that opened them.HoldCell::admitrefuses a grant of another call withCellError::CallMismatchand returns the hold whole.convert_at_parent_exitreturnsResultand gives the accrual back on a mismatch.Replayed, and a convert mismatch asFailed(Admit, Replayed)with the parent settling.impl Kernel), recovery and tick stay unbound: they are host-internal and off the loop.Overlap
teller.rsl.97-104 (Kernel::new) and thecaps/hold.rsmodule doc. Both are disjoint from these hunks.$) touchesUnitCtx's neighbourAccrualMeterandexitl.1313-1325. These hunks sit at l.1302-1308 and l.1327-1333, so they are disjoint but adjacent. Whichever lands second rebases.RED tests
the_runtime_half::a_grant_of_another_call_neither_admits_nor_converts: call A's grant does not admit call B's hold, and the hold comes back whole. It does not convert B's accrual either. B's own grant does both.teller::call_binding_tests::a_pass_of_another_call_is_not_presented_at_the_stage: a pass of another call is refused, and so is an unbound one; the unit's own pass is accepted. A unit is bound once.call_binding_tests::a_door_grant_bound_to_one_call_is_rejected_in_another(existing).No CI yet (ModernCI outage); no laptop builds.