Don't spin with an interlocked operation.

svn path=/branches/ros-amd64-bringup/; revision=44849
This commit is contained in:
Timo Kreuzer 2010-01-01 12:17:24 +00:00
parent a1bc42e31a
commit d786ac57d2

View file

@ -35,8 +35,9 @@ HalpAcquireSystemHardwareSpinLock(VOID)
/* Try to acquire the lock */
while (InterlockedBitTestAndSet((PLONG)&HalpSystemHardwareLock, 0))
{
/* Lock is held, short wait and try again */
YieldProcessor();
/* Lock is held, spin until it's free */
while (*(volatile ULONG*)HalpSystemHardwareLock & 1)
YieldProcessor();
}
/* We have the lock, save the flags now */