public void AcquireWriterLock(int expectedFailureHResult = 0)
{
PerformLockAction(
expectedFailureHResult,
true /* isBlockingOperation */,
() => _rwl.AcquireWriterLock(GetTimeoutMilliseconds(expectedFailureHResult)),
() =>
{
if (_writerLevel == 0)
{
Assert.Equal(InvalidThreadID, _writerThreadID);
_writerThreadID = Environment.CurrentManagedThreadId;
++_writerSeqNum;
}
else
{
Assert.Equal(Environment.CurrentManagedThreadId, _writerThreadID);
}
++_writerLevel;
});
}