public void WithhWriteLockSlimNullActionTest() { var l = new ReaderWriterLockSlim(); l.WithWriteLock(null); }
public void WithWriteLockSlimWithExceptionTest() { var l = new ReaderWriterLockSlim(); Assert.IsFalse(l.IsWriteLockHeld); var thrown = false; try { l.WithWriteLock(() => { Assert.IsTrue(l.IsWriteLockHeld); throw new InvalidOperationException(); }); } catch (InvalidOperationException) { thrown = true; } Assert.IsFalse(l.IsWriteLockHeld); Assert.IsTrue(thrown); }
public void WithWriteLockSlimTimeoutWithExceptionTest() { var l = new ReaderWriterLockSlim(); var e = new AutoResetEvent(false); var t = new Thread(() => { var b = false; try { l.WithWriteLock(() => { Assert.IsTrue(l.IsWriteLockHeld); throw new InvalidOperationException(); }, TimeSpan.FromSeconds(5)); } catch (InvalidOperationException) { b = true; } Assert.IsTrue(b); e.Set(); }); l.EnterWriteLock(); t.Start(); Thread.Sleep(1000); Assert.AreEqual(l.WaitingWriteCount, 1); l.ExitWriteLock(); e.WaitOne(); Assert.IsFalse(l.IsWriteLockHeld); }
public void WithWriteLockSlimTimeoutSuccessTest() { var l = new ReaderWriterLockSlim(); var e = new AutoResetEvent(false); var t = new Thread(() => { l.WithWriteLock(() => { Assert.IsTrue(l.IsWriteLockHeld); }, TimeSpan.FromSeconds(5)); e.Set(); }); l.EnterWriteLock(); t.Start(); Thread.Sleep(1000); Assert.AreEqual(l.WaitingWriteCount, 1); l.ExitWriteLock(); e.WaitOne(); Assert.IsFalse(l.IsWriteLockHeld); }
public void WithWriteLockSlimTimeoutNullActionTest() { var l = new ReaderWriterLockSlim(); l.WithWriteLock(null, TimeSpan.Zero); }
public void WithWriteLockSlimSuccessTest() { var l = new ReaderWriterLockSlim(); Assert.IsFalse(l.IsWriteLockHeld); l.WithWriteLock(() => { Assert.IsTrue(l.IsWriteLockHeld); }); Assert.IsFalse(l.IsWriteLockHeld); }