예제 #1
0
            private void Commit(long sequence, long batchSize)
            {
                if (_isMultithreaded)
                {
                    long expectedSequence = sequence - batchSize;
                    while (expectedSequence != _ringBuffer.Cursor)
                    {
                        // busy spin
                    }
                }

                _ringBuffer.Cursor = sequence; // volatile write
                _waitStrategy.SignalAll();
            }
예제 #2
0
 public void Alert()
 {
     _alerted = true;
     _waitStrategy.SignalAll();
 }