On Thu, 18 Feb 2021 07:03:07 GMT, Andrey Turbanov 
<github.com+741251+turban...@openjdk.org> wrote:

>> Hello @turbanoff, do you mean why read it twice - once here and once inside 
>> the `synchronized` block?
>
> Yes. Once here and once inside `synchronized` block.
> Reading `volatile` fields cost _something_ on some architectures, so I think 
> we could optimize it a bit.

Hello @turbanoff, the double read is necessary to correctly avoid any race 
conditions and is a typical strategy used in cases like these. I am not aware 
of any other alternate more performant strategy, for code like this.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2601

Reply via email to