Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }