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(); } }
public void WriteFullFenceChangesInitialValue() { _volatile.WriteFullFence(NewValue); Assert.AreEqual(NewValue, _volatile.ReadUnfenced()); }