On Mon, 22 Nov 2021 13:49:02 GMT, Erik Österlund <eosterl...@openjdk.org> wrote:
> The VM_HeapDumper code uses a C heap allocated ParallelObjectIterator. It is > constructed right before running a parallel operation with a work gang, but > freed in the destructor of the VM_HeapDumper. This means it is created on one > thread and deleted on another thread. This becomes a bit problematic when a > parallel object iterator implementation uses a ThreadsListHandle (which is > indeed the case for ZGC). This patch changes ParallelObjectIterator to be a > StackObj, carrying a ParallelObjectIteratorImpl object, which is never > exposed publicly. This ensures that construction and destruction of the > internal object iterator is scoped like RAII objects, hence complying with > how ThreadsListHandle is supposed to be used. Marked as reviewed by stefank (Reviewer). ------------- PR: https://git.openjdk.java.net/jdk/pull/6501