RFR: 8227054: ServiceThread needs to know about all OopStorage objects

Kim Barrett kim.barrett at oracle.com
Wed Aug 21 22:02:51 UTC 2019


> On Aug 20, 2019, at 9:41 PM, coleen.phillimore at oracle.com wrote:
> 
> 
> 
> On 8/20/19 5:10 PM, Kim Barrett wrote:
>>> On Aug 20, 2019, at 3:42 PM, coleen.phillimore at oracle.com wrote:
>>> 
>>> 
>>> The iterator code seems to have taken on a life of it's own, but the runtime changes still look good.
>> Thanks.
>> 
>>> Can you put some comment about why is there a singular iterator and what its purpose is?  Is there some implicit use I can't find?
>>> 
>>> +  // Construct a singular iterator.  The only valid operations are
>>> +  // destruction/copy/assignment.
>>> +  Iterator() :
>>> +    _index(singular_index),
>>> +    _limit(singular_index)
>>> +    DEBUG_ONLY(COMMA _category(singular)) {}
>>> +
>>> 
>> Does this help?
>> 
>> -  // Construct a singular iterator.  The only valid operations are
>> -  // destruction/copy/assignment.
>> +  // Construct a singular iterator, not associated with any of the sets
>> +  // (strong, weak, or all) of storage objects.  The only valid operations
>> +  // are destruction/copy/assignment.
>> 
>> Singular iterators exist so you can declare a variable and later assign to it.
> 
> Add this sentence to the comment and I'm fine.  I wanted the comment to say why it exists.

Coleen and I discussed this offline and have reached agreement on

  // Construct a singular iterator for later assignment.  The only valid
  // operations are destruction and assignment.

for both OopStorageSet::Iterator() and WeakProcessorPhases::Iterator().



More information about the hotspot-dev mailing list