RFR: 8262910: Cleanup THREAD/TRAPS/naming and typing issues in ObjectMonitor and related code [v4]

David Holmes david.holmes at oracle.com
Fri Mar 5 05:01:22 UTC 2021


Could I please get a Thumbs up from serviceability on the two JVMTI 
changes, and from compiler folk on the JVMCI and Graal change.

Thanks,
David

On 5/03/2021 2:59 pm, David Holmes wrote:
>> ObjectMonitors can only be used by JavaThreads (modulo some interactions with hashcodes and deflation) but we use "Thread*" almost everywhere mainly due to use of TRAPS (and TRAPS will itself use JavaThread once JDK-8252685 is done). Also some uses of TRAPS in the API's are wrong as, for example, monitor entry can never throw an exception.
>>
>> So this cleanup tackles:
>> - remove incorrect use of TRAPS
>> - change "Thread*" to "JavaThread*" where applicable
>> - don't use THREAD for things not related to exception processing
>> - standardise the naming so that we have "JavaThread* current" rather a mix if Self/THREAD/jt etc.
>> - remove unnecessary as_Java_thread() conversions
>> - other misc cleanup I noticed in some functions
>>
>> The cleanup is predominantly in objectMonitor.* and synchronizer.* but with a fan out to the users of those APIs. No attempt is made to cleanup the callers beyond ensuring we have a suitable JavaThread reference for the calls.
>>
>> Thanks,
>> David
> 
> David Holmes has updated the pull request incrementally with three additional commits since the last revision:
> 
>   - Fix typo
>   - Fixed up BiasedLocking code in ObjectSynchronizer::enter
>   - iFixed alignment in macro
> 
> -------------
> 
> Changes:
>    - all: https://git.openjdk.java.net/jdk/pull/2802/files
>    - new: https://git.openjdk.java.net/jdk/pull/2802/files/e8a66366..e8e7674b
> 
> Webrevs:
>   - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2802&range=03
>   - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2802&range=02-03
> 
>    Stats: 6 lines in 2 files changed: 0 ins; 4 del; 2 mod
>    Patch: https://git.openjdk.java.net/jdk/pull/2802.diff
>    Fetch: git fetch https://git.openjdk.java.net/jdk pull/2802/head:pull/2802
> 
> PR: https://git.openjdk.java.net/jdk/pull/2802
> 


More information about the hotspot-runtime-dev mailing list