Use only one access to the spinlock in the assertion, because the value may change between two access' on smp machines. Modified: trunk/reactos/ntoskrnl/ke/spinlock.c _____
Modified: trunk/reactos/ntoskrnl/ke/spinlock.c --- trunk/reactos/ntoskrnl/ke/spinlock.c 2005-03-13 09:10:36 UTC (rev 13999) +++ trunk/reactos/ntoskrnl/ke/spinlock.c 2005-03-13 09:14:59 UTC (rev 14000) @@ -178,7 +178,7 @@
* FIXME: This depends on gcc assembling this test to a single load from * the spinlock's value. */ - ASSERT(*SpinLock == 0 || *SpinLock == 1); + ASSERT(*SpinLock < 2);
while ((i = InterlockedExchangeUL(SpinLock, 1)) == 1) {