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
DependentSequenceGroupinstead 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.GetBarrierForbyDisruptor.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).