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.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 32682 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 13069 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 805579 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-server] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 1337 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 687 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 1873076 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-XX:TieredStopAtLevel=1] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 31331 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 10982 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 1465947 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-server, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 113514 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 15113 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 2153513 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-client, -XX:-TieredCompilation] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 38916 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 3114 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 413590 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-server, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 5598 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 1790 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 1669082 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-client] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 2489 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 1276 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 384475 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
JVM options: [-Xint] Iterations: 5 Time: 200
Observed state | Occurrence | Expectation | Interpretation |
---|---|---|---|
.*, 1.39067116124321E-309 | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, if r1 is half-value, load var must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load var in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 21742 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 10979 | ACCEPTABLE | actor2 observe the variables after var is already updated but y hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | y won't be observed to be updated before var is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 46269 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |