5.0.0-rc2
Pre-release
Pre-release
The RC2 is the last release of 5.0.0 that includes new features.
See RC1 changes.
Major
- Add
AsyncEventStream
AsyncEventStream is a new async poll-based API:
var stream = ringBuffer.NewAsyncEventStream(); await foreach (var batch in stream.ConfigureAwait(false)) { foreach (var evt in batch) { // process event } }
- Remove unused members from
ISequence
(breaking change) - Use DependentSequenceGroup in
IWaitStrategy
(breaking change)
The wait strategy API was refactored to use
DependentSequenceGroup
instead of the sequence coupleSequence cursor, ISequence dependentSequence
. This change makes the API more explicit, avoid exposing mutable sequences to wait strategies and slightly improves performance.
- Replace
Disruptor.GetBarrierFor
byDisruptor.GetDependentSequencesFor
Sequence barriers are stateful components which are dangerous to expose, but they were the only option to identify the source processor in a wait strategy and track the dependent sequences of a given processor. Exposing the dependent sequences instead of the barrier seems to
address both issues.
- Remove obsolete
Disruptor.HandleExceptionsWith
(breaking change) - Remove sequence barrier interfaces (breaking change)
Minor
- Make all wait strategies sealed
- Handle explicit OnBatchStart implementations by @ltrzesniewski (#62).
- A few performance improvements (including #61 by @buybackoff).