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;
}