public SlimUpgradeableReadLockHolder(ReaderWriterLockSlim locker, bool waitForLock, bool wasLockAlreadyHelf)
{
this.locker = locker;
if (wasLockAlreadyHelf)
{
lockAcquired = true;
wasLockAlreadyHeld = true;
return;
}
if(waitForLock)
{
locker.EnterUpgradeableReadLock();
lockAcquired = true;
return;
}
lockAcquired = locker.TryEnterUpgradeableReadLock(0);
}