Tests VarHandle methods which take effect of load store fence.
[1]JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 1244451 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 470059 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 2171901 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 278369 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 2194619 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 395181 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 1001651 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 277979 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 740830 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 193500 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 75985 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 7535 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 1155860 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 583230 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 0.0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0.0, 0.0 | 1270717 | ACCEPTABLE | load var in actor2 before store 1.39067116124321E-309 to var in actor1, all results are 0.0 |
0.0, 1.39067116124321E-309 | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = 1.39067116124321E-309 x may be assigned to 1.39067116124321E-309 and then r2 can be 1.39067116124321E-309 from x. |
1.39067116124321E-309, 0.0 | 333883 | ACCEPTABLE | store 1.39067116124321E-309 to var in actor1 before load var in actor2 |
1.39067116124321E-309, 1.39067116124321E-309 | 0 | FORBIDDEN | can't load x after store var in actor1. |