> There are several users and even mostly-identical implementations of 
> Threads::owning_thread_from_monitor_owner(), which I would like to 
> consolidate a little in preparation of JDK-8291555:
> - JvmtiEnvBase::get_monitor_usage(): As the comment in 
> ObjectSynchronizer::get_lock_owner() suggests, the JVMTI code should call the 
> ObjectSynchronizer method. The only real difference is that JVMTI loads the 
> object header directly while OS spins to avoid INFLATING. This is harmless, 
> because JVMTI calls from safepoint, where INFLATING does not occur, and would 
> just do a simple load of the header. A little care must be taken to fetch the 
> monitor if exists a few lines below, to fill in monitor info.
> - Two ThreadService methods call Threads::owning_thread_from_monitor_owner(), 
> but always only ever from a monitor. I would like to extract that special 
> case because with fast-locking this can be treated differently (with 
> fast-locking, monitor owners can only be JavaThread* or 'anonynmous'). It's 
> also a little cleaner IMO.
> 
> Testing:
>  - [x] GHA (x86 and x-compile failures look like infra glitch)
>  - [x] tier1
>  - [x] tier2
>  - [x] tier3
>  - [x] tier4

Roman Kennke has updated the pull request incrementally with one additional 
commit since the last revision:

  Fix has_owner() condition

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10849/files
  - new: https://git.openjdk.org/jdk/pull/10849/files/04c780d0..37fa31bf

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10849&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10849&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/10849.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10849/head:pull/10849

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

Reply via email to