On Thu, 29 Jan 2026 04:21:18 GMT, David Holmes <[email protected]> wrote:

>> src/hotspot/share/classfile/javaClasses.cpp line 1944:
>> 
>>> 1942: 
>>> 1943:       bool is_virtual = 
>>> java_lang_VirtualThread::is_instance(_thread_h());
>>> 1944:       bool vthread_carrier = !is_virtual && (java_thread != nullptr) 
>>> && (java_thread->vthread_continuation() != nullptr);
>> 
>> The extra `java_thread != nullptr` should not be necessary.
>
> What would force it to be non-null? (Related: under what conditions will `th` 
> be null and what does that imply about the value of `_thread_h()`?)

A null `java_thread` is only possible for the unmounted vthread case. The oop 
should always be a valid `java.lang.Thread` though. Maybe `thread_oop` should 
be initialized to `nullptr` and the assert at line 1914 be just 
`assert(thread_oop != nullptr, "Missing Thread oop");`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29461#discussion_r2742835509

Reply via email to