On Wed, 28 Jun 2023 11:05:11 GMT, Sergey Tsypanov <stsypa...@openjdk.org> wrote:

> Double-checked locking should rely on local variable to avoid racy reads from 
> volatile field.

Yeah, current code looks like a correct volatile-bearing-DCL. `keySet` is 
safely published already. Introducing local variable gains us nothing here 
performance-wise. Arguably, readability is worse. So I would avoid doing this 
change.

We could have explored if we could drop `volatile` from `keySet`, but it does 
not look safe, given `HashMap` is not safely constructed.

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

PR Comment: https://git.openjdk.org/jdk/pull/14692#issuecomment-1613304173

Reply via email to