[OpenJDK 2D-Dev] [14] RFR JDK-8235147: Release HDC from passiveDCList sooner

Alexey Ivanov alexey.ivanov at oracle.com
Mon Feb 17 12:56:17 UTC 2020


Thank you, Sergey, for your review!

Any other volunteers?


On 06/02/2020 23:10, Sergey Bylokhov wrote:
> Looks fine.
>
> On 2/6/20 1:39 pm, Alexey Ivanov wrote:
>> Hello once again,
>>
>> After trying a few things suggested by Sergey, I found serious issues 
>> in the new approaches although the code looked a bit cleaner. 
>> Resolving those issues requires substantial changes to the way we 
>> handle the active and passive DC lists.
>>
>> Thus, it's safer to postpone further refactoring to a later time.
>>
>> So we're back to the original proposal.
>>
>> I'm quoting it for your convenience below:
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8235147
>> Webrev: http://cr.openjdk.java.net/~aivanov/8235147/webrev.00/
>>
>>
>> When a DC becomes unused, it is moved from activeDCList to 
>> passiveDCList to be released later. It will stay in the passiveDCList 
>> until a new DC is requested for the same window or the window is 
>> destroyed.
>>
>> The DCs in passiveDCList will never be used again, so we can release 
>> them as soon as another request for a DC comes in.
>>
>> The test case, ManyFramesTest.java, attached to the bug creates and 
>> displays 10 frames. Then it hides the 9 frames. At this point, 
>> passiveDCList contains 9 entries. These DCs will not be released 
>> until the corresponding frame is shown and painted again or the frame 
>> is destroyed.
>>
>>
>> The fix releases all DCs currently in passiveDCList when another DC 
>> is requested.
>> With the fix, when running ManyFramesTest.java test case, the number 
>> of entries in passiveDCList does not grow, the list contains at most 
>> 1 entry.
>>
>>
>> On 12/12/2019 20:46, Alexey Ivanov wrote:
>>> Hi Sergey,
>>>
>>> <SNIP>
>>>
>>>
>>> It does not work good. I found serious issues in either approach 
>>> I've tried so far.
>>>
>>> Thus, we're down to the original proposal:
>>>
>>> JBS: https://bugs.openjdk.java.net/browse/JDK-8235147
>>> Webrev: http://cr.openjdk.java.net/~aivanov/8235147/webrev.00/
>>>
>
-- 
Regards,
Alexey


More information about the 2d-dev mailing list