--- trunk/reactos/lib/rosrtl/misc/intrlck.c 2005-03-08 23:01:54 UTC (rev 13892)
+++ trunk/reactos/lib/rosrtl/misc/intrlck.c 2005-03-08 23:07:10 UTC (rev 13893)
@@ -136,8 +136,9 @@
"lock\n\txchgl %0,(%1)"
:"=r" (ret):"r" (target), "0" (value):"memory" );
#elif defined(_M_PPC)
- ret = *(volatile LONG *)target;
- while( InterlockedCompareExchange( target, value, ret ) != ret );
+ do {
+ ret = *(volatile LONG *)target;
+ } while( InterlockedCompareExchange( target, value, ret ) != ret );
#endif
return ret;
}