Esempio n. 1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void modificationsMustTakeWriteLocks()
        public virtual void ModificationsMustTakeWriteLocks()
        {
            // We can observe that a write lock was taken, by seeing that an optimistic read lock was invalidated.
            SimpleBitSet set   = new SimpleBitSet(16);
            long         stamp = set.tryOptimisticRead();

            set.Put(8);
            assertFalse(set.validate(stamp));
            stamp = set.tryOptimisticRead();

            set.Put(8);
            assertFalse(set.validate(stamp));
            stamp = set.tryOptimisticRead();

            SimpleBitSet other = new SimpleBitSet(16);

            other.Put(3);
            set.Put(other);
            assertFalse(set.validate(stamp));
            stamp = set.tryOptimisticRead();

            set.Remove(3);
            assertFalse(set.validate(stamp));
            stamp = set.tryOptimisticRead();

            set.Remove(3);
            assertFalse(set.validate(stamp));
            stamp = set.tryOptimisticRead();

            other.Put(8);
            set.Remove(other);
            assertFalse(set.validate(stamp));
            stamp = set.tryOptimisticRead();

            other.Put(8);
            set.Remove(other);
            assertFalse(set.validate(stamp));
        }