On Sat, 18 Feb 2023 01:33:16 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

>> Thank you for looking at this PR, David!
>> Please, note a disabler at L938. A safepont can be reached in its destructor.
>> Also, see the comment at L952:
>> 
>>  937   {
>>  938     JvmtiVTMSTransitionDisabler disabler(true);
>>  939     ThreadsListHandle tlh(current);
>>  940 
>>  941     err = get_threadOop_and_JavaThread(tlh.list(), thread, 
>> &java_thread, &thread_oop);
>>  942     if (err != JVMTI_ERROR_NONE) {
>>  943       return err;
>>  944     }
>>  945 
>>  946     // Do not use JvmtiVTMSTransitionDisabler in context of self 
>> suspend to avoid deadlocks.
>>  947     if (java_thread != current) {
>>  948       err = suspend_thread(thread_oop, java_thread, /* single_suspend 
>> */ true, nullptr);
>>  949       return err;
>>  950     }
>>  951     // protect thread_oop as a safepoint can be reached in disabler 
>> destructor
>>  952     self_tobj = Handle(current, thread_oop);
>>  953   }
>
>> it means there are now many places that can block for safepoints that 
>> previously wouldn't and it is very to hard to tell if that is okay or not.
> 
> We partially rely on testing and good test coverage here.

Okay we can see how this goes.

-------------

PR: https://git.openjdk.org/jdk/pull/12550

Reply via email to