RFR: 8366671: Refactor Thread::SpinAcquire and Thread::SpinRelease
Anton Artemov
duke at openjdk.org
Wed Nov 12 15:23:49 UTC 2025
Hi,
please consider the following changes:
In this PR `Thread::SpinAcquire()` and `Thread::SpinRelease()` methods are refactored into a utility class `SpinCriticalSection`. The motivation is to make it easier for developers to use this lightweight synchronization mechanism in the codebase. The two aforementioned methods were used in JFR to create short critical sections with a helper class, but that was not the case for the object monitor code.
Additionally, `SpinSingleSection` class is added, which allows to execute a payload code inside of a functor by only one thread.
Tested in tiers 1 - 5.
-------------
Commit messages:
- Merge remote-tracking branch 'origin/master' into JDK-8366671-refactor-spin-acquire-spin-release
- 8366671: Fixed whitespaces.
- 8366671: Fixed whitespaces.
- 8366671: Fixed whitespaces.
- 8366671: Refactor SpinAcquire/SpinRelease into SpinCriticalSection
Changes: https://git.openjdk.org/jdk/pull/28264/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28264&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8366671
Stats: 380 lines in 12 files changed: 199 ins; 116 del; 65 mod
Patch: https://git.openjdk.org/jdk/pull/28264.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/28264/head:pull/28264
PR: https://git.openjdk.org/jdk/pull/28264
More information about the hotspot-dev
mailing list