On Wed, 1 Sep 2021 11:32:15 GMT, Coleen Phillimore <[email protected]> wrote:
>> src/hotspot/share/memory/heapInspection.cpp line 564:
>>
>>> 562: missed_count = ric.missed_count();
>>> 563: {
>>> 564: MutexLocker x(&_mutex, Mutex::_no_safepoint_check_flag);
>>
>> This change seems unnecessary - this lock is only taken by GC threads, or
>> the VMThread (?), never a JavaThread, but this change makes it look like it
>> is taken by a JavaThread that wants to avoid safepoint checks.
>
> This change is necessary in that we have a check inside Mutex::lock that this
> flag matches how the lock was defined. It was argued that we want to have to
> pass this parameter to know when safepoints are not checked in the code that
> was taking out the lock, so the parameter is needed.
I hadn't realized that we included a check for safepoint-check-never for the
NJT case. I thought the safepoint-check state was completely ignored for NJTs.
I don't recall if in the past I agreed with doing this, but I think it is
confusing and misleading to see this in the code. But so be it, as far as this
PR goes at least.
Thanks.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5323