Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
 public PinkoMutexDisposable(PinkoMutex mutex, int milliseconds)
 {
     _mutext = mutex;
     _isLocked = _mutext.Lock(milliseconds);
 }
Example #5
0
 /// <summary>
 /// Constructor - PinkoMutexDispodable 
 /// </summary>
 public PinkoMutexDisposable(PinkoMutex mutex)
 {
     _mutext = mutex;
     _mutext.Lock();
     _isLocked = true;
 }