Tests VarHandle methods which take effect of store store fence.
http://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.7
java.specification.name | Java Platform API Specification |
java.specification.vendor | Oracle Corporation |
java.specification.version | 13 |
java.vendor | N/A |
java.version | 13-internal |
java.vm.name | OpenJDK 64-Bit Server VM |
java.vm.vendor | Oracle Corporation |
java.vm.version | 13-internal+0-adhoc.buildslave.jdk13 |
os.arch | aarch64 |
os.name | Linux |
os.version | 4.16.0-290-arm64 |
TC 1 | JVM options: [-XX:-TieredCompilation] Iterations: 1 Time: 10 Stride: [10, 10000] (capped by NONE) |
TC 2 | JVM options: [-XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 1 Time: 10 Stride: [10, 10000] (capped by NONE) |
TC 3 | JVM options: [-XX:TieredStopAtLevel=1] Iterations: 1 Time: 10 Stride: [10, 10000] (capped by NONE) |
TC 4 | JVM options: [-Xint] Iterations: 1 Time: 10 Stride: [1, 1] (capped by TIME) |
Observed state | TC 1 | TC 2 | TC 3 | TC 4 | Expectation | Interpretation |
---|---|---|---|---|---|---|
-1, -1 | 332335 | 330271 | 332264 | 2 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
0, -1 | 319 | 182 | 180 | 0 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, 0 | 887 | 488 | 497 | 1 | ACCEPTABLE | actor2 observe the variables before actor1 update |
OK | OK | OK | OK |