hotspot/test/compiler/unsafe/JdkInternalMiscUnsafeAccessTestObject.java
changeset 36316 7a83de7aabca
parent 35103 d19354bcbfa6
child 36827 53d2d43551d2
equal deleted inserted replaced
36315:150a415079ae 36316:7a83de7aabca
   132             UNSAFE.putOrderedObject(base, offset, "foo");
   132             UNSAFE.putOrderedObject(base, offset, "foo");
   133             Object x = UNSAFE.getObjectVolatile(base, offset);
   133             Object x = UNSAFE.getObjectVolatile(base, offset);
   134             assertEquals(x, "foo", "putRelease Object value");
   134             assertEquals(x, "foo", "putRelease Object value");
   135         }
   135         }
   136 
   136 
       
   137         // Lazy
       
   138         {
       
   139             UNSAFE.putObjectRelease(base, offset, "foo");
       
   140             Object x = UNSAFE.getObjectAcquire(base, offset);
       
   141             assertEquals(x, "foo", "putRelease Object value");
       
   142         }
       
   143 
       
   144         // Opaque
       
   145         {
       
   146             UNSAFE.putObjectOpaque(base, offset, "bar");
       
   147             Object x = UNSAFE.getObjectOpaque(base, offset);
       
   148             assertEquals(x, "bar", "putOpaque Object value");
       
   149         }
       
   150 
   137 
   151 
   138         UNSAFE.putObject(base, offset, "foo");
   152         UNSAFE.putObject(base, offset, "foo");
   139 
   153 
   140         // Compare
   154         // Compare
   141         {
   155         {
   150             assertEquals(r, false, "failing compareAndSwap Object");
   164             assertEquals(r, false, "failing compareAndSwap Object");
   151             Object x = UNSAFE.getObject(base, offset);
   165             Object x = UNSAFE.getObject(base, offset);
   152             assertEquals(x, "bar", "failing compareAndSwap Object value");
   166             assertEquals(x, "bar", "failing compareAndSwap Object value");
   153         }
   167         }
   154 
   168 
       
   169         // Advanced compare
       
   170         {
       
   171             Object r = UNSAFE.compareAndExchangeObjectVolatile(base, offset, "bar", "foo");
       
   172             assertEquals(r, "bar", "success compareAndExchangeVolatile Object");
       
   173             Object x = UNSAFE.getObject(base, offset);
       
   174             assertEquals(x, "foo", "success compareAndExchangeVolatile Object value");
       
   175         }
       
   176 
       
   177         {
       
   178             Object r = UNSAFE.compareAndExchangeObjectVolatile(base, offset, "bar", "baz");
       
   179             assertEquals(r, "foo", "failing compareAndExchangeVolatile Object");
       
   180             Object x = UNSAFE.getObject(base, offset);
       
   181             assertEquals(x, "foo", "failing compareAndExchangeVolatile Object value");
       
   182         }
       
   183 
       
   184         {
       
   185             Object r = UNSAFE.compareAndExchangeObjectAcquire(base, offset, "foo", "bar");
       
   186             assertEquals(r, "foo", "success compareAndExchangeAcquire Object");
       
   187             Object x = UNSAFE.getObject(base, offset);
       
   188             assertEquals(x, "bar", "success compareAndExchangeAcquire Object value");
       
   189         }
       
   190 
       
   191         {
       
   192             Object r = UNSAFE.compareAndExchangeObjectAcquire(base, offset, "foo", "baz");
       
   193             assertEquals(r, "bar", "failing compareAndExchangeAcquire Object");
       
   194             Object x = UNSAFE.getObject(base, offset);
       
   195             assertEquals(x, "bar", "failing compareAndExchangeAcquire Object value");
       
   196         }
       
   197 
       
   198         {
       
   199             Object r = UNSAFE.compareAndExchangeObjectRelease(base, offset, "bar", "foo");
       
   200             assertEquals(r, "bar", "success compareAndExchangeRelease Object");
       
   201             Object x = UNSAFE.getObject(base, offset);
       
   202             assertEquals(x, "foo", "success compareAndExchangeRelease Object value");
       
   203         }
       
   204 
       
   205         {
       
   206             Object r = UNSAFE.compareAndExchangeObjectRelease(base, offset, "bar", "baz");
       
   207             assertEquals(r, "foo", "failing compareAndExchangeRelease Object");
       
   208             Object x = UNSAFE.getObject(base, offset);
       
   209             assertEquals(x, "foo", "failing compareAndExchangeRelease Object value");
       
   210         }
       
   211 
       
   212         {
       
   213             boolean r = UNSAFE.weakCompareAndSwapObject(base, offset, "foo", "bar");
       
   214             assertEquals(r, true, "weakCompareAndSwap Object");
       
   215             Object x = UNSAFE.getObject(base, offset);
       
   216             assertEquals(x, "bar", "weakCompareAndSwap Object value");
       
   217         }
       
   218 
       
   219         {
       
   220             boolean r = UNSAFE.weakCompareAndSwapObjectAcquire(base, offset, "bar", "foo");
       
   221             assertEquals(r, true, "weakCompareAndSwapAcquire Object");
       
   222             Object x = UNSAFE.getObject(base, offset);
       
   223             assertEquals(x, "foo", "weakCompareAndSwapAcquire Object");
       
   224         }
       
   225 
       
   226         {
       
   227             boolean r = UNSAFE.weakCompareAndSwapObjectRelease(base, offset, "foo", "bar");
       
   228             assertEquals(r, true, "weakCompareAndSwapRelease Object");
       
   229             Object x = UNSAFE.getObject(base, offset);
       
   230             assertEquals(x, "bar", "weakCompareAndSwapRelease Object");
       
   231         }
       
   232 
   155         // Compare set and get
   233         // Compare set and get
   156         {
   234         {
   157             Object o = UNSAFE.getAndSetObject(base, offset, "foo");
   235             Object o = UNSAFE.getAndSetObject(base, offset, "foo");
   158             assertEquals(o, "bar", "getAndSet Object");
   236             assertEquals(o, "bar", "getAndSet Object");
   159             Object x = UNSAFE.getObject(base, offset);
   237             Object x = UNSAFE.getObject(base, offset);