public void TestacquiredWithTimeout() { var mutex = new PinkoMutex(); var acquired = true; Task.Factory.StartNew(() => acquired = mutex.Lock(500)); Thread.Sleep(2000); // assure lock was acquired Assert.IsTrue(acquired); }
public void TestDelayedTimedSignaled() { var mutex = new PinkoMutex(); Task.Factory.StartNew(() => { using (mutex.LockDisposible()) { } }) ; Thread.Sleep(1000); using (var dispMustex = mutex.LockDisposible()) Assert.IsTrue(dispMustex.IsLocked); }
public void TestDelayedTimedTimeoutDisposable() { var mutex = new PinkoMutex(); var ev = new ManualResetEvent(false); Task.Factory.StartNew(() => { using (mutex.LockDisposible()) ev.WaitOne(); }); Thread.Sleep(1000); // should be locked by the worker thread above using (var dispMustex = mutex.LockDisposible(500)) Assert.IsFalse(dispMustex.IsLocked); ev.Set(); Thread.Sleep(1000); // should be available now using (var dispMustex = mutex.LockDisposible(500)) Assert.IsTrue(dispMustex.IsLocked); }
public PinkoMutexDisposable(PinkoMutex mutex, int milliseconds) { _mutext = mutex; _isLocked = _mutext.Lock(milliseconds); }
/// <summary> /// Constructor - PinkoMutexDispodable /// </summary> public PinkoMutexDisposable(PinkoMutex mutex) { _mutext = mutex; _mutext.Lock(); _isLocked = true; }