RFR: 8247972: incorrect implementation of JVM TI GetObjectMonitorUsage [v4]
Serguei Spitsyn
sspitsyn at openjdk.org
Tue Feb 13 08:15:03 UTC 2024
On Tue, 13 Feb 2024 06:55:46 GMT, David Holmes <dholmes at openjdk.org> 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
More information about the serviceability-dev
mailing list