public void CreateNewWrite() { var locker = ReadWriteLocker.Create <List <int> >(); using (locker.Write()) { FillList(locker); // ReadWriteLocker supports implicit cast into the wrapped type Assert.IsTrue(locker.Lock.IsWriteLockHeld); Assert.IsFalse(locker.Lock.IsReadLockHeld); } Assert.IsFalse(locker.Lock.IsWriteLockHeld); Assert.IsFalse(locker.Lock.IsReadLockHeld); Assert.AreEqual(3, locker.Value.Count); }
public void CreateRead() { var list = new List <int> { 2, 4, 8 }; var locker = ReadWriteLocker.Create(list); using (locker.Read()) { Assert.IsFalse(locker.Lock.IsWriteLockHeld); Assert.IsTrue(locker.Lock.IsReadLockHeld); CollectionAssert.AreEqual(new[] { 2, 4, 8 }, locker.Value); } Assert.IsFalse(locker.Lock.IsWriteLockHeld); Assert.IsFalse(locker.Lock.IsReadLockHeld); }