Last fix due to w3seek. I will stop working on this stuff until I have time to be thorough. Modified: trunk/reactos/lib/rosrtl/misc/intrlck.c _____
Modified: trunk/reactos/lib/rosrtl/misc/intrlck.c --- 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; }