RFR: 8332913: GenShen: Restore shared update refs iterator

Y. Srinivas Ramakrishna ysr at openjdk.org
Fri May 24 19:10:19 UTC 2024


On Fri, 24 May 2024 19:03:38 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:

>> Turns out, this iterator is shared between concurrent and degenerated GC cycles. It should not have been made into a local variable.
>
> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 2384:
> 
>> 2382:     workers()->run_task(&task);
>> 2383:   }
>> 2384:   assert(cancelled_gc() || !update_refs_iterator.has_next(), "Should have finished update references");
> 
> Should one keep this assert, but have it refer to the `_update_refs_iterator` field that you restored in shHeap?

I do see that the assert in `op_final_updaterefs()` checks this at the start of the next phase, so may be we are adequately covered already.

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/439#discussion_r1613903745


More information about the shenandoah-dev mailing list