On Tue, 23 Nov 2021 09:42:10 GMT, Per Liden <pli...@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.
>
> Looks good.

Thanks for the reviews, @pliden and @stefank!

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

PR: https://git.openjdk.java.net/jdk/pull/6501

Reply via email to