Cancel Multiple Instance Activity, and a cancelled fork strand ends i… - #137
Merged
Merged
Conversation
…ts loop FBFlowInstance>>cancelIterationsOf: cancels every iteration of a running parallel node that is still running or waiting - their scopes fall, sub flow frames included - and lets no further one start. The loop then completes with what arrived, nil in the slots taken back, and the flow goes on behind it (WCP-26: control passes on). A node that is not looping answers empty and leaves no trace. Cancelling the fork's own strand is the other thing (WCP-19 on the loop): the loop starts no further iteration and nothing goes on behind its join. Until now it took the iterations and then started the next one. For that, cancelStrand: marks the named token itself when its activation is still standing - a fork whose loop is open, a sub flow node whose child runs - and records an FBNodeActivationCancelled for it; a token of an activation already done stays as it is. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
…ts loop
FBFlowInstance>>cancelIterationsOf: cancels every iteration of a running parallel node that is still running or waiting - their scopes fall, sub flow frames included - and lets no further one start. The loop then completes with what arrived, nil in the slots taken back, and the flow goes on behind it (WCP-26: control passes on). A node that is not looping answers empty and leaves no trace.
Cancelling the fork's own strand is the other thing (WCP-19 on the loop): the loop starts no further iteration and nothing goes on behind its join. Until now it took the iterations and then started the next one. For that, cancelStrand: marks the named token itself when its activation is still standing - a fork whose loop is open, a sub flow node whose child runs - and records an FBNodeActivationCancelled for it; a token of an activation already done stays as it is.