Tests VarHandle methods which take effect of load load fence.
[1]JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 1313682 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 49347 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 75771 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 589407 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 33320 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 79763 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 280726 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 12918 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 23876 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 38108 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 4382 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 6170 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 634521 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 4507 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 5572 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 1373489 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 7193 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 19228 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 3348395 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 53278 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 117517 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 3142397 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load x must get a full-value |
0, -1 | 3643 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before fullFence in actor1 |
0, 0 | 7660 | ACCEPTABLE | actor2 observe the variables before actor1 update |