RFR 8221435: Shenandoah should not mark through weak roots

Zhengyu Gu zgu at redhat.com
Tue Mar 26 19:54:19 UTC 2019



On 3/26/19 3:42 PM, Aleksey Shipilev wrote:
> On 3/26/19 8:31 PM, Roman Kennke wrote:
>>> Roman, do you recall the reason why it was done this way?
>>>
>>> ShenandoahWeakAssertNotForwardedClosure is debug only closure, surround the body with ifdef.
>>
>> Well, as you say, it's debug-only, so shouldn't matter performance-wise. Except, as you say, it
>> should be #ifdef ASSERT. It wasn't #ifdef'd before? WTF?
> 
> The comment says why. You need to go over them, even with no-op closure. Not sure if it is still
> relevant today:
> 
>    711     // Weak processor API requires us to visit the oops, even if we are not doing
>    712     // anything to them.

Yes, it is still relevant:  it only needs is_alive closure to NULL dead 
entries

-Zhengyu

> 
> -Aleksey
> 


More information about the shenandoah-dev mailing list