RFR: 8309603: Deallocate hashtables in ClassLoaderData::unload [v3]

David Holmes dholmes at openjdk.org
Tue Jul 25 00:46:08 UTC 2023


On Thu, 13 Jul 2023 00:03:14 GMT, Chad Rakoczy <duke at openjdk.org> wrote:

>> [JDK-8309603](https://bugs.openjdk.org/browse/JDK-8309603)
>> 
>> Memory is released in `ClassLoaderdata::~ClassLoaderData` for the dictionary and module hashtables but they could be deleted earlier in `ClassLoaderdata::unload`. Since we're unloading the class loader is no longer being used for lookup.
>> 
>> Additional testing:
>> - [x] Linux x86_64 fastdebug `tier2`
>> - [x] Linux x86_64 release `tier2`
>> - [x] Linux x86_64 fastdebug `gtest:all`
>> - [x] Linux x86_64 release `gtest:all`
>> - [x] Linux x86_64 fastdebug `test/hotspot/jtreg/runtime`
>> - [x] Linux x86_64 release `test/hotspot/jtreg/runtime`
>
> Chad Rakoczy has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move package deallocation back to deconstructor

When do we delete the ClassLoaderData? Does moving this to unload time help with a specific problem? It seems odd to split the deallocation operations between unload and the destructor - why does unload not just call the destructor?

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

PR Comment: https://git.openjdk.org/jdk/pull/14820#issuecomment-1635124744


More information about the hotspot-runtime-dev mailing list