Tests VarHandle methods which take effect of load store fence.
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
null, null | 875785 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 497255 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 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 |
---|---|---|---|
null, null | 1720613 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 754067 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
null, null | 49052 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 7698 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
null, null | 1018348 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 376052 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
null, null | 372582 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 331258 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 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 |
---|---|---|---|
null, null | 274824 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 101236 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 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 |
---|---|---|---|
null, null | 2879017 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 761903 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 0 | FORBIDDEN | can't load x after store var in actor1. |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
null, null | 1747809 | ACCEPTABLE | load var in actor2 before store object to var in actor1, all results are null |
null, object | 0 | FORBIDDEN | this won't happen even if load x after store var because only if r1 = object x may be assigned to object and then r2 can be object from x. |
object, null | 839791 | ACCEPTABLE | store object to var in actor1 before load var in actor2 |
object, object | 0 | FORBIDDEN | can't load x after store var in actor1. |