RFR: 8292170: Convert CodeRootSetTable to use ResourceHashtable [v8]

Leo Korinth lkorinth at openjdk.org
Tue Jan 24 13:36:45 UTC 2023


> I am replacing the old hash table with ResourceHashtable. In the process I am also removing the redundant `_length` field. By removing the `_length` field, a lot of asserts can be removed as the length will trivially match the length of the underlying table.
> 
> I would like to have feedback on the addition of `unlink_destruct(Function&& should_remove)`. I added it because I prefer to use a functor object that can be used by lambdas instead of an iterator object. However, I did add code to "destruct" resource objects when they are removed instead of just letting them be to reflect that we use `delete` on c-heap objects. Maybe I should remove this "improvement" and then maybe implement the function by calling the existing unlink?

Leo Korinth has updated the pull request incrementally with one additional commit since the last revision:

  Remove the purge list and use the resizing of the resource hash
  table.
  
  Add asserts ensuring that we do not mutatet a hash table while we
  iterate over it. Renaming .*g1CodeCacheRemSet.?pp -> .*g1CodeRootSet.?pp

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/11675/files
  - new: https://git.openjdk.org/jdk/pull/11675/files/0ed0c851..0d4436ad

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=11675&range=07
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=11675&range=06-07

  Stats: 795 lines in 15 files changed: 307 ins; 476 del; 12 mod
  Patch: https://git.openjdk.org/jdk/pull/11675.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/11675/head:pull/11675

PR: https://git.openjdk.org/jdk/pull/11675


More information about the hotspot-dev mailing list