Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor PacketTunnelActor's state logic to use a Reducer #6194

Draft
wants to merge 44 commits into
base: features/ios-post-quantum
Choose a base branch
from

Conversation

acb-mv
Copy link
Contributor

@acb-mv acb-mv commented Apr 29, 2024

This is an experimental refactoring of the PacketTunnelActor state machine, which splits the state processing logic into two stages: a stateless function (a Reducer) which takes incoming events (Commands) and existing state and produces updated state and zero or more Effect values, and stateful code within the actor that executes the Effect values, producing effects. This is an instance of the Reducer architecture, and has the effect of making the state transition logic purely stateless and allowing it to be tested and reasoned about without concern for side effects.

This branch is not on main but on features/ios-post-quantum, as to incorporate extensions to the state flow used in the PQ work. Despite this, it is not part of the PQ work as such.


This change is Reviewable

pinkisemils and others added 30 commits April 10, 2024 11:34
@acb-mv acb-mv added the iOS Issues related to iOS label Apr 29, 2024
@acb-mv acb-mv self-assigned this Apr 29, 2024
Copy link
Collaborator

@rablador rablador left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 6 of 6 files at r1, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved

@buggmagnet buggmagnet force-pushed the features/ios-post-quantum branch 8 times, most recently from 591aca8 to 1de5f57 Compare May 8, 2024 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
iOS Issues related to iOS
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants