RFR: 8302849: SurfaceManager might expose partially constructed object
Sergey Bylokhov
serb at openjdk.org
Mon Feb 20 18:23:25 UTC 2023
On Mon, 20 Feb 2023 10:25:34 GMT, Per Minborg <pminborg at openjdk.org> wrote:
> This PR proposes to add `volatile` to a variable declaration in order to prevent partially initialized objects to be observed by threads.
>
> `SurfaceManager` is using a lazily initialized cacheMap that is initialized using a double-checked locking mechanism. Generally, objects initialized using such constructs need to be declared volatile.
>
> See https://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java
Marked as reviewed by serb (Reviewer).
-------------
PR: https://git.openjdk.org/jdk/pull/12654
More information about the client-libs-dev
mailing list