public void Can_get_and_add() { var array = new AtomicLongArray(1); array.Add(0, 1); var value = array.GetAndAdd(0, 2); value.Should().Be(1); array.GetValue(0).Should().Be(3); }
public void Can_get_and_increment() { var array = new AtomicLongArray(1); array.Add(0, 10); var value = array.GetAndIncrement(0, 2); value.Should().Be(10); array.GetValue(0).Should().Be(12); }
protected override void addToCountAtIndex(int index, long value) { long criticalValue = wrp.WriterCriticalSectionEnter(); try { activeCounts.Add(NormalizeIndex(index, activeCountsNormalizingIndexOffset, activeCounts.Length), value); } finally { wrp.WriterCriticalSectionExit(criticalValue); } }