Tests VarHandle methods which take effect of load store fence.
[1]JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load x after store var in actor1. |
-1, 0 | 191481 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 1317149 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 409809 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 1876411 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 1690 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 94300 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 250613 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 1254837 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 65358 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 194262 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 253990 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 205320 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 292876 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 694574 | ACCEPTABLE | load var in actor2 before store -1 to var in actor1, all results are 0 |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load x after store var in actor1. |
-1, 0 | 185063 | ACCEPTABLE | store -1 to var in actor1 before load var 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 x after store var because only if r1 = -1 x may be assigned to -1 and then r2 can be -1 from x. |
0, 0 | 459587 | ACCEPTABLE | load var in actor2 before store -1 to var in actor1, all results are 0 |