On Wed, 4 Aug 2021 22:56:15 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

>> src/hotspot/share/jfr/utilities/jfrThreadIterator.hpp line 50:
>> 
>>> 48: class JfrJavaThreadIteratorAdapter {
>>> 49:  private:
>>> 50:   ThreadsListHandle _tlist;
>> 
>> Why do we need to store this?
>> 
>> It looks very suspiocious to have a member that is a stackObj, in a class 
>> that is not itself a stackObj. ??
>
> The _tlist is used locally in JfrJavaThreadIteratorAdapter constructor only, 
> so it is possible to get rid of it for the price of complicating the 
> constructor a little bit.

The `_tlist` is a handle that ensures the captured ThreadsList remains live 
while the iterator (or a copy) exists.  Dropping it would leave `_it` and 
`_end` potentially dangling.

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

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

Reply via email to