RFR (S) 8164207: Checking missing load-acquire in relation to _pd_set in dictionary.cpp
Christian Thalinger
cthalinger at twitter.com
Thu Aug 24 21:00:39 UTC 2017
> On Aug 24, 2017, at 10:54 AM, coleen.phillimore at oracle.com wrote:
>
>
>
> On 8/24/17 4:07 PM, Zhengyu Gu wrote:
>> Hi Coleen,
>>
>> There are two instances probably overlooked?
>>
>> dictionary.cpp #103 and #124
>>
>> for (ProtectionDomainEntry* current = _pd_set;
>> =>
>> for (ProtectionDomainEntry* current = pd_set();
>>
>>
>
> Oh yeah, you're right. That's embarrasing. I'll fix and retest.
Which also shows that there is a potential for future mistakes. Can we isolate the field better so it’s only accessible via setter and getter?
>
> Thank you!!
> Coleen
>
>> Thanks,
>>
>> -Zhengyu
>>
>> On 08/24/2017 02:28 PM, coleen.phillimore at oracle.com wrote:
>>> Summary: Use load_acquire for accessing DictionaryEntry::_pd_set since it's accessed outside the SystemDictionary_lock
>>>
>>> Ran parallel class loading tests that we have as well as tier1 tests. See bug for details.
>>>
>>> open webrev at http://cr.openjdk.java.net/~coleenp/8164207.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8164207
>>>
>>> Thanks,
>>> Coleen
>>>
>
More information about the hotspot-runtime-dev
mailing list