OpenMetaverse.ReaderWriterLockSlim.EnterMyLockSpin C# (CSharp) Method

EnterMyLockSpin() private method

private EnterMyLockSpin ( ) : void
return void
        void EnterMyLockSpin()
        {
            for (int i = 0; ; i++)
            {
                if (i < 3 && smp)
                    Thread.SpinWait(20);    // Wait a few dozen instructions to let another processor release lock.
                else
                    Thread.Sleep(0);        // Give up my quantum.

                if (Interlocked.CompareExchange(ref myLock, 1, 0) == 0)
                    return;
            }
        }