org.openjdk.jcstress.tests.atomicity.primitives.reflect.VolatileDoubleAtomicityTest

Description and references

null

Environment

java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 10
java.vendor Oracle Corporation
java.version 10-internal
java.vm.name OpenJDK 64-Bit Server VM
java.vm.vendor Oracle Corporation
java.vm.version 10-internal+0-adhoc.buildslave.jdk10
os.arch aarch64
os.name Linux
os.version 4.4.0-63-generic

Test configurations

TC 1 JVM options: [] Iterations: 5 Time: 200
TC 2 JVM options: [-XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
TC 3 JVM options: [-XX:-TieredCompilation] Iterations: 5 Time: 200
TC 4 JVM options: [-XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
TC 5 JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
TC 6 JVM options: [-Xint] Iterations: 5 Time: 200

Observed states

Observed state TC 1 TC 2 TC 3 TC 4 TC 5 TC 6 Expectation Interpretation
0.0 207020 2151709 30551 5792 86989 9458 ACCEPTABLE Default value for the field. Observers are allowed to see the default value for the field, because there is the data race between reader and writer.
NaN 3922748 2366159 3580887 1969466 1871429 54580 ACCEPTABLE The value set by the actor thread. Observer sees the complete update.
OK OK OK OK OK OK

Auxiliary data