Hi all, I wonder why JvmtiEnvBase::get_object_monitor_usage() (implementation of GetObjectMonitorUsage()) does not perform at safepoint.
Monitor owner would be acquired from monitor object at first [1], but it would perform concurrently. If owner thread is not suspended, the owner might be changed to others in subsequent code. For example, the owner might release the monitor before [2]. Thanks, Yasumasa [1] http://hg.openjdk.java.net/jdk/jdk/file/76a17c8143d8/src/hotspot/share/prims/jvmtiEnvBase.cpp#l973 [2] http://hg.openjdk.java.net/jdk/jdk/file/76a17c8143d8/src/hotspot/share/prims/jvmtiEnvBase.cpp#l996