--- old/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java 2016-04-30 01:02:38.244180730 +0300 +++ new/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestInt.java 2016-04-30 01:02:38.184181011 +0300 @@ -40,6 +40,7 @@ public class JdkInternalMiscUnsafeAccessTestInt { static final int ITERS = Integer.getInteger("iters", 1); + static final int WEAK_ATTEMPTS = Integer.getInteger("weakAttempts", 10); static final jdk.internal.misc.Unsafe UNSAFE; @@ -251,22 +252,31 @@ } { - boolean r = UNSAFE.weakCompareAndSwapInt(base, offset, 1, 2); - assertEquals(r, true, "weakCompareAndSwap int"); + boolean success = false; + for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { + success = UNSAFE.weakCompareAndSwapInt(base, offset, 1, 2); + } + assertEquals(success, true, "weakCompareAndSwap int"); int x = UNSAFE.getInt(base, offset); assertEquals(x, 2, "weakCompareAndSwap int value"); } { - boolean r = UNSAFE.weakCompareAndSwapIntAcquire(base, offset, 2, 1); - assertEquals(r, true, "weakCompareAndSwapAcquire int"); + boolean success = false; + for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { + success = UNSAFE.weakCompareAndSwapIntAcquire(base, offset, 2, 1); + } + assertEquals(success, true, "weakCompareAndSwapAcquire int"); int x = UNSAFE.getInt(base, offset); assertEquals(x, 1, "weakCompareAndSwapAcquire int"); } { - boolean r = UNSAFE.weakCompareAndSwapIntRelease(base, offset, 1, 2); - assertEquals(r, true, "weakCompareAndSwapRelease int"); + boolean success = false; + for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) { + success = UNSAFE.weakCompareAndSwapIntRelease(base, offset, 1, 2); + } + assertEquals(success, true, "weakCompareAndSwapRelease int"); int x = UNSAFE.getInt(base, offset); assertEquals(x, 2, "weakCompareAndSwapRelease int"); } @@ -286,7 +296,7 @@ int o = UNSAFE.getAndAddInt(base, offset, 2); assertEquals(o, 1, "getAndAdd int"); int x = UNSAFE.getInt(base, offset); - assertEquals(x, 1 + 2, "weakCompareAndSwapRelease int"); + assertEquals(x, 1 + 2, "getAndAdd int"); } } @@ -300,4 +310,3 @@ } } -