public void AtomicInt32SupportsGetAndAddMultiThreaded() { const int expected = 0; var i = new AtomicInt32(); i.GetAndSet(1000); System.Threading.Tasks.Parallel.For(0, 1000, j => i.GetAndAdd(-1)); Assert.AreEqual(expected, (int)i); Assert.AreEqual(expected, i.Value); }
public void AtomicInt32SupportsGetAndAddNegatives() { const int expected = 0; var i = new AtomicInt32(); i.GetAndSet(1000); for (int j = 0; j < 1000; j++) { i.GetAndAdd(-1); } Assert.AreEqual(expected, (int)i); Assert.AreEqual(expected, i.Value); }
public Startup() { initilizationReset = initializationCount.GetAndSet(0) != 0; }