System.Threading.Tests.ReaderWriterLockTests.TestReaderWriterLock.UpgradeToWriterLock C# (CSharp) Метод

UpgradeToWriterLock() публичный Метод

public UpgradeToWriterLock ( int expectedFailureHResult ) : TestLockCookie
expectedFailureHResult int
Результат TestLockCookie
            public TestLockCookie UpgradeToWriterLock(int expectedFailureHResult = 0)
            {
                TestLockCookie tlc = null;
                LockCookie lockCookie = default(LockCookie);
                PerformLockAction(
                    expectedFailureHResult,
                    true /* isBlockingOperation */,
                    () => lockCookie = _rwl.UpgradeToWriterLock(GetTimeoutMilliseconds(expectedFailureHResult)),
                    () =>
                    {
                        tlc = new TestLockCookie()
                        {
                            _lockCookie = lockCookie,
                            _readerLevel = ThreadReaderLevel,
                            _writerLevel = _writerLevel
                        };

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