internal bool TryEnter() { InstanceLockGuard.EnforceGuard(this); bool lockHeld = false; bool success = false; try { Monitor.TryEnter(this, ref lockHeld); if (lockHeld) { HeldLocks.Add(this); success = true; } } finally { if (lockHeld && !success) { Monitor.Exit(this); } } return(success); }
internal bool TryEnter() { InstanceLockGuard.EnforceGuard(this); bool lockTaken = false; bool flag2 = false; try { Monitor.TryEnter(this, ref lockTaken); if (lockTaken) { HeldLocks.Add(this); flag2 = true; } } finally { if (lockTaken && !flag2) { Monitor.Exit(this); } } return(flag2); }