System.Threading.Tests.ReaderWriterLockTests.TestReaderWriterLock.ReleaseLock C# (CSharp) Method

ReleaseLock() public method

public ReleaseLock ( ) : TestLockCookie
return TestLockCookie
            public TestLockCookie ReleaseLock()
            {
                TestLockCookie tlc = null;
                LockCookie lockCookie = default(LockCookie);
                PerformLockAction(
                    0 /* expectedFailureHResult */,
                    false /* isBlockingOperation */,
                    () => lockCookie = _rwl.ReleaseLock(),
                    () =>
                    {
                        tlc = new TestLockCookie()
                        {
                            _lockCookie = lockCookie,
                            _readerLevel = ThreadReaderLevel,
                            _writerLevel = _writerLevel
                        };

                        if (_writerLevel != 0)
                        {
                            Assert.Equal(Environment.CurrentManagedThreadId, _writerThreadID);
                        }
                        ThreadReaderLevel = 0;
                        _writerLevel = 0;
                        _writerThreadID = InvalidThreadID;
                    });
                return tlc;
            }