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

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Thu Aug 30 20:03:42 UTC 2018

On 8/30/18 2:56 PM, Erik Österlund wrote:
> 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.

So you verified that there's no performance difference with this? It 
looks good and just in time because I'm calling this function in the 
patch I'm working on.  A lot.

> 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