Skip to content

5.0.0-rc2

Pre-release
Pre-release
Compare
Choose a tag to compare
@ocoanet ocoanet released this 14 May 16:32
· 74 commits to master since this 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 couple Sequence cursor, ISequence dependentSequence. This change makes the API more explicit, avoid exposing mutable sequences to wait strategies and slightly improves performance.

  • Replace Disruptor.GetBarrierFor by Disruptor.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).