Exemplo n.º 1
0
        public void OnEvent(FizzBuzzEvent @event, long sequence, bool endOfBatch)
        {
            switch (_fizzBuzzStep)
            {
            case FizzBuzzStep.Fizz:
                @event.Fizz = (@event.Value % 3) == 0;
                break;

            case FizzBuzzStep.Buzz:
                @event.Buzz = (@event.Value % 5) == 0;
                break;

            case FizzBuzzStep.FizzBuzz:
                if (@event.Fizz && @event.Buzz)
                {
                    _fizzBuzzCounter.WriteFullFence(_fizzBuzzCounter.ReadFullFence() + 1);
                }
                break;
            }
            //System.Console.WriteLine(sequence);
            if (_ce != null && sequence == _iterations)
            {
                _ce.Signal();
            }
        }
Exemplo n.º 2
0
 public void WriteFullFenceChangesInitialValue()
 {
     _volatile.WriteFullFence(NewValue);
     Assert.AreEqual(NewValue, _volatile.ReadUnfenced());
 }