On Tue, 13 Feb 2024 06:55:46 GMT, David Holmes <[email protected]> wrote:
>> Serguei Spitsyn has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> review: fixed issues in get_object_monitor_usage; extended test coverage
>> in objmonusage003
>
> src/hotspot/share/runtime/javaThread.cpp line 196:
>
>> 194: oop JavaThread::vthread_or_thread() const {
>> 195: oop result = vthread();
>> 196: if (result == nullptr) {
>
> Is that really sufficient? If so why do we have `is_vthread_mounted` which
> checks the continuation?
Thank you for the question.
This function does not care if this is a vthread, or not and if it is mounted
or not.
We just need a right oop of currently executed thread or vthread.
The `threadOop()` and `vthread()` can return the same oop.
If `vthread()` is not `nullptr` then it can point either to a `j.l.Thread` or a
`j.lVirtualThread`.
If it is `nullptr` then we have to take `threadOop()`.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17680#discussion_r1487374609