Exemple #1
0
        public void Update(long newTailIndex)
        {
            QueueState oldState;
            QueueState newState;

            do
            {
                oldState = _currentState;
                newState = new QueueState(newTailIndex);
            } while (Interlocked.CompareExchange(ref _currentState, newState, oldState) != oldState);

            oldState?.Update(newState);
        }
Exemple #2
0
 private QueueStateMonitor(long initialTailIndex)
 {
     _currentState = new QueueState(initialTailIndex);
 }