On Thu, 9 Mar 2023 18:55:06 GMT, Patricio Chilano Mateo
<[email protected]> wrote:
> Please review this small fix. A suspender is a JvmtiVTMSTransitionDisabler
> monopolist, meaning VTMS_transition_disable_for_all() should not return while
> there is any active jvmtiVTMSTransitionDisabler. The code though is checking
> for active "all-disablers" but it's missing the check for active "single
> disablers".
> I attached a simple reproducer to the bug which I used to test the patch. Not
> sure if it was worth adding a test so the patch contains just the fix.
>
> Thanks,
> Patricio
src/hotspot/share/prims/jvmtiThreadState.cpp line 372:
> 370: java_lang_Thread::dec_VTMS_transition_disable_count(vth());
> 371: Atomic::dec(&_VTMS_transition_disable_for_one_count);
> 372: if (_VTMS_transition_disable_for_one_count == 0 || _is_SR) {
Sorry I don't understand why this `_is_SR` check was removed. I admit I can't
really figure out what this field means anyway, but there is nothing in the
issue description that suggests this also needs changing - and it is now
different to `VTMS_transition_enable_for_all`.
-------------
PR: https://git.openjdk.org/jdk/pull/12956