RFR: JDK-8272112: Arena code simplifications
Kim Barrett
kbarrett at openjdk.java.net
Mon Aug 9 08:40:35 UTC 2021
On Mon, 9 Aug 2021 08:14:20 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
> * `ChunkPool::prune()` will not work with `blocksToKeep=0` (never did). I guess that is okay.
Yeah, that seems fine now that it's a constant. If you want to be paranoid and add a comment or even a static_assert, that would be fine with me, but not necessary.
> * I thought about factoring out "free chunk and followers" as a new `ChunkPool::free_list()` from `ChunkPool::prune()` because strictly speaking we should do this also at destruction. But the only instances of `ChunkPool` are globals, and there is no need to spend time on cleanup when the VM exits. Is there a pattern somehow to mark a class as "its okay to leak resources since we only use this class as static globals"?
I don't know of any idiom in HotSpot for tagging such places. Add a comment if you feel the need to do so?
> * The actual allocation of backing memory for chunks is spread over various places (`Chunk::operator new()`, `Chunk::operator delete()`, `ChunkPool::prune()`). I wondered if for clarity we should factor them out into clearly marked functions. I did not do that to keep the patch small.
It's not obvious that's worth the extra work. It seems fine as is to me.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5040
More information about the hotspot-dev
mailing list