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

Synchronizers as dependencies #372

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

polycone
Copy link
Member

  • Static chores sync configuration was like an unnecessary layer of narrow scoped synchronizer declarations thus it was replaced with the DI resolvable configurers, for state machines (IStateMachineConfigurer) and chores (IChoreConfigurer) separately. This solved kind of a dirty approach of StateMachinesPatcher.Register, now the entire configuration is deducible from the container.
  • Considering excessive usage of SkipHost flag the Send method was split into SendAll and Send without options. This is a temporary solution before the next networking subsystem update.
  • As a useful legacy from generics usage investigations we now have DynamicMethodDelegate and DynamicFieldAccessor for fast (as opposed to reflection`s Invoke) methods invocation and field getter / setter. These can be used in performance critical sections.

Note: After several attempts to erase state machines generic types from our customizers the only one seemingly good solution was to wrap everything with simple classes and route everything via dynamic delegates, basically making a wrapper for the entire state machines ecosystem, but this is too unjustified just for the sake of improving "excessive generics usage". The best way is to design the system with non-generic access and since we have no control over it - we stuck with this, I guess. Max line length was set to 160 characters long, in hopes to maybe improve readability.

@polycone polycone requested a review from zuev93 August 26, 2024 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant