On Mon, 17 Apr 2023 08:14:13 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.
>
> Dmitry Cherepanov has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   fixed long lines

Marked as reviewed by serb (Reviewer).

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

> 256:          * @param gen the graphics primitive to be registered as the 
> general loop
> 257:          */
> 258:         static synchronized void register(GraphicsPrimitive gen) {

The change looks fine, but it seems we have a good opportunity here to change 
all that synchronized methods to read/write locks.

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

PR Review: https://git.openjdk.org/jdk/pull/13459#pullrequestreview-1396412580
PR Review Comment: https://git.openjdk.org/jdk/pull/13459#discussion_r1174171201

Reply via email to