On Mon, 19 Dec 2022 12:13:42 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

>> src/hotspot/share/prims/jvmtiThreadState.cpp line 298:
>> 
>>> 296:   HandleMark hm(thread);
>>> 297:   Handle vth = Handle(thread, 
>>> JNIHandles::resolve_external_guard(_vthread));
>>> 298:   if (!java_lang_VirtualThread::is_instance(vth())) {
>> 
>> How can this condition not be true? Should it be an assertion?
>
> The JvmtiVTMSTransitionDisabler has to be a no-op for a non-virtual thread. 
> It is to avoid different branches where it is possible for virtual and 
> non-virtual cases and use this in `jvmtiEnv.cpp`:
> `  JvmtiVTMSTransitionDisabler disabler(thread);`
> I've added comments that mark no-op cases.

I see. I assumed the name `_vthread` implied it was actually known to be a 
vthread. Really the field and parameters should just be called `thread`.

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

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

Reply via email to