Last fix due to w3seek. I will stop working on this stuff until I have
authorArt Yerkes <art.yerkes@gmail.com>
Tue, 8 Mar 2005 23:07:10 +0000 (23:07 +0000)
committerArt Yerkes <art.yerkes@gmail.com>
Tue, 8 Mar 2005 23:07:10 +0000 (23:07 +0000)
time to be thorough.

svn path=/trunk/; revision=13893

reactos/lib/rosrtl/misc/intrlck.c

index a5009a3..4d01c11 100644 (file)
@@ -136,8 +136,9 @@ InterlockedExchange(LPLONG target, LONG value )
                   "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;
 }