RFR: 8254315: Shenandoah: Concurrent weak reference processing [v12]

Aleksey Shipilev shade at openjdk.java.net
Tue Oct 27 18:51:22 UTC 2020


On Tue, 27 Oct 2020 11:50:10 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahThreadLocalData.hpp line 55:
>> 
>>> 53:   int  _disarmed_value;
>>> 54:   double _paced_time;
>>> 55:   ShenandoahMarkRefsSuperClosure* _mark_closure;
>> 
>> This rubs me the wrong way. Closures are usually stack-allocated, so we are exposing the stack pointer here.
>
> Yeah we need to pass it between the mark-loop and the reference-processor. It's still thread-local.

While I am browsing the code here... why not record it in `ShenandoahRefProcThreadLocal` then? It has a benefit of not polluting the "common" `ShenandoahThreadLocalData`, and clearly says the whole thing is about Shenandoah reference processor.

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

PR: https://git.openjdk.java.net/jdk/pull/505


More information about the shenandoah-dev mailing list