Tests VarHandle methods which take effect of store store fence.
[1]JVM options: [-server, -XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 2137109 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 11118 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 113003 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 733502 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 16766 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 29272 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 577795 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 3623 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 27222 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 36883 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 3963 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 71214 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 742047 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 1707 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 5346 | 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 | 993273 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 695 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 1132 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 987714 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 1197 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 3469 | ACCEPTABLE | actor2 observe the variables before actor1 update |
JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
-1, -1 | 475125 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
-1, 0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
.*, -1 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0, -1 | 9083 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0, 0 | 22272 | ACCEPTABLE | actor2 observe the variables before actor1 update |