public void TestReadLockTimeout()
 {
     using (ILockStrategy l = LockFactory.Create())
     using (new ThreadedWriter(l))
     using (ReadLock r = new ReadLock(l, 0))
         Assert.IsFalse(r.HasReadLock);
 }
 public void TestIdiotReaderUsesDispose()
 {
     using (ILockStrategy l = LockFactory.Create())
     using (ReadLock r = new ReadLock(l, 0))
     {
         Assert.IsTrue(r.HasReadLock);
         ((IDisposable)r).Dispose(); //You cannot do this, the using statement has a 'copy' of ReadLock, don't call dispose.
     }
 }
Example #3
0
 /// <summary>
 /// Returns a reader lock that can be elevated to a write lock
 /// </summary>
 public ReadLock Read()
 {
     return(ReadLock.Acquire(this, -1));
 }
Example #4
0
 /// <summary>
 /// Returns a reader lock that can be elevated to a write lock
 /// </summary>
 /// <exception cref="System.TimeoutException"/>
 public ReadLock Read(int timeout)
 {
     return(ReadLock.Acquire(this, timeout));
 }
Example #5
0
 /// <summary>
 /// Returns a reader lock that can be elevated to a write lock
 /// </summary>
 /// <exception cref="System.TimeoutException"/>
 public ReadLock Read(int millisecondsTimeout)
 {
     return(ReadLock.Acquire(this, millisecondsTimeout));
 }
 public void TestReadLockSuccess()
 {
     using (ILockStrategy l = LockFactory.Create())
     using (ReadLock r = new ReadLock(l, 0))
         Assert.IsTrue(r.HasReadLock);
 }