RFR: 8210233: Prepare Klass::is_loader_alive() for concurrent class unloading

Erik Ă–sterlund erik.osterlund at oracle.com
Thu Aug 30 18:56:06 UTC 2018


Hi,

The Klass::is_loader_alive() facility currently assumes that CLDs are 
set to unloading before giving a correct answer. This is a problem for 
concurrent class unloading. This needs to instead be evaluated in a more 
concurrency friendly fashion, so that it will give the right answer even 
in concurrent contexts.

The proposed solution is to stop using the cached unloading value, and 
instead ask the CLD if it is_alive(), which utilizes a phantom load on 
the CLD holder, and is concurrency friendly.

Webrev:
http://cr.openjdk.java.net/~eosterlund/8210233/webrev.00/

Bug:
https://bugs.openjdk.java.net/browse/JDK-8210233

Thanks,
/Erik


More information about the hotspot-runtime-dev mailing list