< prev index next >
test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java
Print this page
*** 38,47 ****
--- 38,48 ----
import static org.testng.Assert.*;
public class JdkInternalMiscUnsafeAccessTestObject {
static final int ITERS = Integer.getInteger("iters", 1);
+ static final int WEAK_ATTEMPTS = Integer.getInteger("weakAttempts", 10);
static final jdk.internal.misc.Unsafe UNSAFE;
static final long V_OFFSET;
*** 202,227 ****
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "foo", "failing compareAndExchangeRelease Object value");
}
{
! boolean r = UNSAFE.weakCompareAndSwapObject(base, offset, "foo", "bar");
! assertEquals(r, true, "weakCompareAndSwap Object");
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "bar", "weakCompareAndSwap Object value");
}
{
! boolean r = UNSAFE.weakCompareAndSwapObjectAcquire(base, offset, "bar", "foo");
! assertEquals(r, true, "weakCompareAndSwapAcquire Object");
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "foo", "weakCompareAndSwapAcquire Object");
}
{
! boolean r = UNSAFE.weakCompareAndSwapObjectRelease(base, offset, "foo", "bar");
! assertEquals(r, true, "weakCompareAndSwapRelease Object");
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "bar", "weakCompareAndSwapRelease Object");
}
// Compare set and get
--- 203,237 ----
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "foo", "failing compareAndExchangeRelease Object value");
}
{
! boolean success = false;
! for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
! success = UNSAFE.weakCompareAndSwapObject(base, offset, "foo", "bar");
! }
! assertEquals(success, true, "weakCompareAndSwap Object");
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "bar", "weakCompareAndSwap Object value");
}
{
! boolean success = false;
! for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
! success = UNSAFE.weakCompareAndSwapObjectAcquire(base, offset, "bar", "foo");
! }
! assertEquals(success, true, "weakCompareAndSwapAcquire Object");
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "foo", "weakCompareAndSwapAcquire Object");
}
{
! boolean success = false;
! for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
! success = UNSAFE.weakCompareAndSwapObjectRelease(base, offset, "foo", "bar");
! }
! assertEquals(success, true, "weakCompareAndSwapRelease Object");
Object x = UNSAFE.getObject(base, offset);
assertEquals(x, "bar", "weakCompareAndSwapRelease Object");
}
// Compare set and get
*** 234,239 ****
}
}
-
--- 244,248 ----
< prev index next >