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 |
---|---|---|---|
-1, -1 | 0 | FORBIDDEN | can't load x after store var in actor1. |
-1, 0 | 419259 | 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 | 1270711 | 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 | 249366 | 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 | 474464 | 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 | 400533 | 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 | 4336997 | 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 | 683268 | 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 | 1888862 | 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 | 293635 | 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 | 1959845 | 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 | 5430 | 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 | 118760 | ACCEPTABLE | load var in actor2 before store -1 to var 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 x after store var in actor1. |
-1, 0 | 193474 | 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 | 1194976 | 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 | 301426 | 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 | 713214 | ACCEPTABLE | load var in actor2 before store -1 to var in actor1, all results are 0 |