RFR: 8210233: Prepare Klass::is_loader_alive() for concurrent class unloading
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Tue Sep 4 11:59:45 UTC 2018
The updated comments look fine. I briefly checked other uses of the
_is_unloading field and it seems like we still want is_unloading() for
cleaning up modules/packages and the dictionaries.
This looks good.
thanks,
Coleen
On 9/3/18 11:25 AM, Erik Österlund wrote:
> Hi Kim,
>
> You are right. Thank you for catching that.
>
> Incremental:
> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.00_01/
>
> Full:
> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.01/
>
> Thank you for the review.
>
> /Erik
>
> On 2018-08-30 21:27, Kim Barrett wrote:
>>> On Aug 30, 2018, at 2:56 PM, Erik Österlund
>>> <erik.osterlund at oracle.com> 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.
>>>
>>> Webrev:
>>> http://cr.openjdk.java.net/~eosterlund/8210233/webrev.00/
>>>
>>> Bug:
>>> https://bugs.openjdk.java.net/browse/JDK-8210233
>>>
>>> Thanks,
>>> /Erik
>> Nearby comments involving "unloading" should be updated.
>>
>
More information about the hotspot-runtime-dev
mailing list