RFR: 8194312: Support parallel and concurrent JNI global handle processing

Kim Barrett kim.barrett at oracle.com
Mon Jan 15 05:56:15 UTC 2018


> On Jan 12, 2018, at 3:53 AM, Kim Barrett <kim.barrett at oracle.com> wrote:
> 
>> On Jan 11, 2018, at 7:56 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
>> One reason for iteration templates is to support const iteration.
>> […]
>> 
>> Another reason for iteration templates is to be forward-looking to
>> C++11, where it becomes easy to pass in an instance of a local type,
>> or a lambda, or a bind expression, all of which are ways to make
>> used-in-one-place function objects conveniently at the point of use.
>> This can often make the code much easier to understand than having to
>> go somewhere else to find out what do_oop for *this* closure does.
>> 
>> With a little work we could always use oops_do for iteration (and make
>> iterate/iterate_safepoint private).  There would be two versions of
>> oops_do, one using cl->do_oop(p), the other cl(p), selected via a
>> little metaprogramming (in C++11, I don't remember how hard it is in
>> C++03, or if it's even possible.)
> 
> Hm, maybe this is easier than I was thinking it might be.  The difficulty
> I was remembering seems to be a somewhat different case, and a simple
> solution seems obvious now, except it’s kind of late, so maybe I’m tired
> and missing something.
> 
> I’ll look at it tomorrow.

Never mind, I’m not seeing a way to do that selection easily with C++03.
And the reasons for considering doing it don’t really exist until C++11.
So I’m wanting to leave it as is.




More information about the hotspot-dev mailing list