いくつかの単体テスト コードを書いており、ディスラプターのリング バッファーに発行されたすべてのイベントが処理されたことを知る必要があります (前述のように、特定のテスト ケースのみを対象としています)。
数時間調査しても洗練された解決策が見つからなかった後、テスト ケースで次のコードを使用することにしました。
while (ringBuffer.getBufferSize() > ringBuffer.remainingCapacity()) {
Thread.yield();
}
動作しているように見えgetBufferSize()
ますが、 anint
をremainingCapacity()
返し、 along
を返すので、何かを見落としているのではないかと心配しています。
を返し、?を返す理由getBufferSize()
は誰でも知っています。バグでない限り、私には意味がありません。int
remainingCapacity()
long