Skip to content

Commit 9b714c7

Browse files
committed
Added call get to RemainingCapacity for a Sequencer
- mirror java 6319789fd4690ad2e1dc54741f56ed1d600c2a82
1 parent a94645f commit 9b714c7

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

Diff for: Disruptor.Tests/SequencerTests.cs

+12
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,18 @@ public void ShouldRejectAvailableCapcityLessThanOne()
173173
_sequencer.TryNext(0);
174174
}
175175

176+
[Test]
177+
public void ShouldCalculateRemainingCapacity()
178+
{
179+
Assert.AreEqual(4L, _sequencer.RemainingCapacity());
180+
_sequencer.Publish(_sequencer.Next());
181+
Assert.AreEqual(3L, _sequencer.RemainingCapacity());
182+
_sequencer.Publish(_sequencer.Next());
183+
Assert.AreEqual(2L, _sequencer.RemainingCapacity());
184+
_sequencer.Publish(_sequencer.Next());
185+
Assert.AreEqual(1L, _sequencer.RemainingCapacity());
186+
}
187+
176188
private void FillBuffer()
177189
{
178190
for (int i = 0; i < BufferSize; i++)

Diff for: Disruptor/Sequencer.cs

+7
Original file line numberDiff line numberDiff line change
@@ -198,5 +198,12 @@ private void Publish(long sequence, int batchSize)
198198
_claimStrategy.SerialisePublishing(sequence, _cursor, batchSize);
199199
_waitStrategy.SignalAllWhenBlocking();
200200
}
201+
202+
public long RemainingCapacity()
203+
{
204+
long consumed = Util.GetMinimumSequence(_gatingSequences);
205+
long produced = _cursor.Value;
206+
return BufferSize - (produced - consumed);
207+
}
201208
}
202209
}

0 commit comments

Comments
 (0)