RFR: 8288327: Executable.hasRealParameterData should not be volatile [v7]
Peter Levart
plevart at openjdk.org
Mon Jul 4 21:38:22 UTC 2022
On Thu, 30 Jun 2022 12:08:19 GMT, Сергей Цыпанов <duke at openjdk.org> wrote:
>> If there are two threads calling `Executable.hasRealParameterData()` under race and the first one writes into volatile `Executable.parameters` field (doing _releasing store_) and the second thread reads non-null value from the same field (doing acquiring read) then it must read exactly the same value written into `hasRealParameterData` within `privateGetParameters()`. The reason for this is that we assign `hasRealParameterData` before _releasing store_.
>>
>> In the opposite case (_acquiring read_ reads null) the second thread writes the value itself and returns it from the method so there is no change in behavior.
>
> Сергей Цыпанов has updated the pull request incrementally with one additional commit since the last revision:
>
> 8288327: Inline privateGetParameters()
This looks good to me. Thanks for doing that.
-------------
Marked as reviewed by plevart (Reviewer).
PR: https://git.openjdk.org/jdk/pull/9143
More information about the core-libs-dev
mailing list