System.Threading.ReaderWriterLockSlim.EnterMyLockSpin C# (CSharp) Method

EnterMyLockSpin() final private method

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