public void AtomicLongArray_Store_Should_Fail() { var atomicLongArray = new AtomicLongArray(new [] { 100L }); Assert.Throws <InvalidOperationException>(() => atomicLongArray.Store(0, int.MinValue, MemoryOrder.Acquire)); #pragma warning disable 618 Assert.Throws <NotSupportedException>(() => atomicLongArray.Store(0, int.MinValue, MemoryOrder.Consume)); #pragma warning restore 618 }
public void AtomicLongArray_Store_Should_Success(int initialValue, int storeValue, MemoryOrder order) { var atomicLongArray = new AtomicLongArray(new long[] { initialValue }, MemoryOrder.Relaxed); atomicLongArray.Store(0, storeValue, order); Assert.Equal(storeValue, atomicLongArray[0]); }
public void AtomicLongArray_Store_MemoryOrder_Should_Success(MemoryOrder order) { var atomicLongArray = new AtomicLongArray(new long[3], order); for (int i = 0; i < atomicLongArray.Count; i++) { atomicLongArray.Store(i, i, order); } for (int i = 0; i < atomicLongArray.Count; i++) { Assert.Equal(i, atomicLongArray.Load(i, order)); } for (int i = 0; i < atomicLongArray.Count; i++) { atomicLongArray.Store(i, i, order); } for (int i = 0; i < atomicLongArray.Count; i++) { Assert.Equal(i, atomicLongArray.Load(i, order)); } }
public void AtomicLongArray_Load_Acquire_Should_Success(MemoryOrder order) { var atomicLongArray = new AtomicLongArray(new long[3], order); for (int i = 0; i < atomicLongArray.Count; i++) { Assert.Equal(0, atomicLongArray.Load(i, MemoryOrder.Acquire)); atomicLongArray.Store(i, i, MemoryOrder.Release); } for (int i = 0; i < atomicLongArray.Count; i++) { Assert.Equal(i, atomicLongArray.Load(i, MemoryOrder.Acquire)); } }