RFR (S) 8214822: Move ConcurrentHashTable VALUE parameter to CONFIG
David Holmes
david.holmes at oracle.com
Fri Jun 21 14:12:45 UTC 2019
Hi Coleen,
On 21/06/2019 5:40 am, coleen.phillimore at oracle.com wrote:
>
>
> On 6/20/19 9:29 PM, David Holmes wrote:
>> Hi Coleen,
>>
>> On 20/06/2019 10:39 am, coleen.phillimore at oracle.com wrote:
>>> Summary: make VALUE parameter be included in CONFIG configuration,
>>> also remove BaseConfig
>>>
>>> Tested with tier1-3.
>>>
>>> open webrev at
>>> http://cr.openjdk.java.net/~coleenp/2019/8214822.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8214822
>>
>> I don't understand all the "value" typedef's you have introduced:
>>
>> + typedef WeakHandle<vm_string_table_data> value;
>> + typedef Symbol* value; // value of the Node in the hashtable
>> + typedef WeakHandle<vm_resolved_method_table_data> value;
>>
>> If "value" is meant to be a type then it should be "Value", as "value"
>> is used as the variable name everywhere. But I don't see you actually
>> using the typedefs anywhere ??
>
> Here it is:
>
> http://cr.openjdk.java.net/~coleenp/2019/8214822.01/webrev/src/hotspot/share/utilities/concurrentHashTable.hpp.frames.html
>
>
> 43 typedef typename CONFIG::value VALUE;
>
> I can capitalize it. I left it VALUE vs some other name to reduce the
> changes, and capital VALUE I think helps the reader know that this is
> like a parameterized type (from the CONFIG).
I see two sources of confusion in the current code. First "value" in the
typedef appears to conflict with "value" as a variable name. It may not
actually conflict due to the way C++ interprets the name in context but
it looks very strange to me to have e.g.:
typedef WeakHandle<vm_resolved_method_table_data> value;
static uintx get_hash(WeakHandle<vm_resolved_method_table_data> const&
value,
bool* is_dead) {
So I'd prefer to see:
typedef WeakHandle<vm_resolved_method_table_data> Value;
Second now that you have the typedef why aren't you using it in the
function declaration ie.
static uintx get_hash(Value const& value, bool* is_dead) {
Thanks,
David
> Thanks,
> Coleen
>>
>> Thanks,
>> David
>> -----
>>
>>> Thanks,
>>> Coleen
>
More information about the hotspot-runtime-dev
mailing list