RFR: 8193559: ugly DO_JAVA_THREADS macro should be replaced [v2]

Daniel D.Daugherty dcubed at openjdk.java.net
Sat Jul 3 03:40:15 UTC 2021

On Fri, 2 Jul 2021 22:18:08 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:

>> src/hotspot/share/runtime/thread.cpp line 2470:
>>> 2468: 
>>> 2469:     JavaThreadPrefetchedIterator(ThreadsList* list) :
>>> 2470:       _list(list), _end(list->threads() + list->length()), _current(list->threads()) {}
>> I don't see any uses of the `_list` member.
> Nice catch. I don't see any either.

Fixed that.

>> src/hotspot/share/runtime/thread.cpp line 2484:
>>> 2482: 
>>> 2483: #define DO_JAVA_THREADS(LIST, X) \
>>> 2484:   for (JavaThreadPrefetchedIterator iter(LIST); JavaThread* X = iter.current(); iter.next())
>> The condition is an implicit conversion to bool, which is disallowed
>> by the style guide.  In fact, it's a declaration, which is
>> specifically called out by the style guide.  When I revised the style
>> guide I made explicit mention of that usage because I'd tried to use
>> that sort of thing several years ago and got several complaints.  So
>> it's not that I personally think that usage is bad; rather, I was
>> hoping someone would take on the little project of convincing the team
>> it was good.  I don't have any objection to this part of the change.
> I'll take a look at fixing that.

I can't find a way to fix that without adding back some of the crazy things
in the original macro.


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

More information about the hotspot-gc-dev mailing list