Esempio n. 1
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);
        }
Esempio n. 2
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);
        }