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 | 659278 | 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 | 43266 | 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 | 106286 | 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 | 1832798 | 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 | 29834 | 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 | 120708 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 2188312 | 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 | 1262 | 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 | 3506 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 1220855 | 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 | 8523 | 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 | 17002 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 2038929 | 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 | 40431 | 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 | 51290 | 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 | 1579709 | 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 | 1814 | 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 | 12277 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 46862 | 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 | 4373 | 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 | 23545 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 547044 | 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 | 2691 | 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 | 12015 | ACCEPTABLE | actor2 observe the variables before actor1 update |