Skip to content

6.0.0

Latest
Compare
Choose a tag to compare
@ocoanet ocoanet released this 13 Jan 18:15
· 22 commits to master since this release
  • Add MaxBatchSize to all event handler interfaces (IEventHandler, IBatchEventHandler, IValueEventHandler, IAsyncBatchEventHandler)
  • Refactor event processor factories (breaking change)

The factory method now takes a SequenceBarrier instead of a ISequence[]. The factory implementations always had to create a sequence barrier anyway so the new API should be simpler is to use. Also, the factory types are now delegates instead of interfaces, so they can be created using lambdas, which was probably the design goal of the Java API.

  • Remove ISequence (breaking change)

The codebase was no longer creating any implementation other than Sequence. Thus, ISequence was an unnecessary abstraction which was not even useful for encapsulation because it was mutable.

  • Remove the obsolete method RingBuffer.ResetTo (breaking change)
  • Remove LiteTimeoutBlockingWaitStrategy (breaking change)
  • Pass DependentSequenceGroup in sequence barrier constructor (breaking change)
  • Add tag to DependentSequenceGroup

The goal of the tag is to allow wait strategies to identify specific sequence groups to apply different wait logic.

  • Add HybridSpinWaitStrategy

It is a non-blocking strategy that uses either AggressiveSpinWait or SpinWait depending on the target DependentSequenceGroup. Although this wait strategy is useful and functional, it was mainly added as an example of a wait strategy that applies different wait logic depending on the sequence groups tags.