On Thu, 23 Oct 2025 17:29:29 GMT, Patricio Chilano Mateo 
<[email protected]> wrote:

>> This is the last PR in a series of PRs (see: 
>> [JDK-8344261](https://bugs.openjdk.org/browse/JDK-8344261)) to obsolete the 
>> LockingMode flag and related code.
>> 
>> The main focus is to to unify `ObjectSynchronizer` and 
>> `LightweightSynchronizer`.
>> There used to be a number of "dispatch functions" to redirect calls 
>> depending on the setting of the `LockingMode` flag.
>> Since we now only have lightweight locking, there is no longer any need for 
>> those dispatch functions, so I removed them.
>> To remove the dispatch functions I renamed the corresponding lightweight 
>> functions and call them directly.
>> This ultimately led me to remove "lightweight" from the function names and 
>> go back to "fast" instead, just to avoid having some with, and some without 
>> the "lightweight" part of the name.
>> 
>> This PR also include a small simplification of 
>> `ObjectSynchronizer::FastHashCode`.
>> 
>> Tested tier1-7 (on supported platforms) without seeing any problems that can 
>> be traced to this code change.
>> All other platforms (`arm`, `ppc`, `riscv`, `s390`) has been sanity checked 
>> using QEMU.
>
> src/hotspot/share/runtime/synchronizer.cpp line 648:
> 
>> 646:       // stability and then install the hash.
>> 647:     } else {
>> 648:       assert(!mark.is_unlocked() && !mark.is_fast_locked(), 
>> "invariant");
> 
> Note that `mark.monitor()` below already asserts `mark.has_monitor()` which 
> is stronger.

Good point, but I still like to keep the `assert()` on 648 for clarity. Would 
you rather see it removed?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27915#discussion_r2460563344

Reply via email to