On Thu, 13 Apr 2023 13:03:37 GMT, Dmitry Cherepanov <[email protected]> 
wrote:

> This PR suggests to move generalPrimitives array to a new static nested 
> GeneralPrimitives class to eliminate the possible deadlock. The Blit class 
> (and other classes that register as general primitives) calls to 
> GeneralPrimitives.register from the static initializer block without 
> acquiring lock on the GraphicsPrimitiveMgr class.
> 
> This PR also includes a jtreg regression test which reproduces this issue 
> without the patch and passes with the patch. Running tests from 
> test/jdk/sun/java2d didn't reveal any issues with this patch.

src/java.desktop/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java line 
270:

> 268:         }
> 269: 
> 270:         static GraphicsPrimitive locate(int primTypeID) {

it should be marked as `synchronized` too. Otherwise there will possible data 
race between other thread called `register`

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13459#discussion_r1165711469

Reply via email to