Tests VarHandle methods which take effect of load store fence.
[1]JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 565967 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 1438813 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 257463 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 2003127 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 185490 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 879620 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 462199 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 2573681 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 205616 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 1118194 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 1155 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 112995 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 363804 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 820776 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |
JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load var after store y in actor1. |
-1, 0 | 71516 | ACCEPTABLE | store -1 to y in actor1 before load y in actor2 |
.*, 0 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, r2 only can be assigned to 0. |
0, -1 | 0 | FORBIDDEN | this won't happen even if load var after store y because only if r1 = -1 var may be assigned to -1 and then r2 can be -1 from var. |
0, 0 | 9194 | ACCEPTABLE | load y in actor2 before store -1 to y in actor1, all results are 0 |