Tests VarHandle methods which take effect of store store fence.
[1]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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 2175 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 522 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 2193493 | 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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 2895 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 2431 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 895924 | 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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 1846 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 968 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 1346266 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |
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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 33366 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 25137 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 348207 | 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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 9632 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 2176 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 174022 | 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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 2619 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 2293 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 16218 | 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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 85507 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 64012 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 1064971 | 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 x must get a full-value |
0.0, .* | 0 | ACCEPTABLE_SPEC | Non-atomic access detected, allowed by spec, when load x in actor2 before storestore Fence in actor1 |
0.0, 0.0 | 119753 | ACCEPTABLE | actor2 observe the variables before actor1 update |
0.0, 1.39067116124321E-309 | 52564 | ACCEPTABLE | actor2 observe the variables after x is already updated but var hasn't yet |
1.39067116124321E-309, 0.0 | 0 | FORBIDDEN | var won't be observed to be updated before x is updated |
1.39067116124321E-309, 1.39067116124321E-309 | 988783 | ACCEPTABLE | actor2 observe the variables after actor1 update completely |