RFR: 8376126: G1: Convert remaining volatiles in G1ConcurrentMark to Atomic<T>

Thomas Schatzl tschatzl at openjdk.org
Fri Jan 23 08:38:08 UTC 2026


Hi all,

  please convert remaining volatile declarations in `G1ConcurrentMark` to use `Atomic<T>`. These volatiles are used to indicate concurrent phased access (like changing the variable in thread A, then reading the variable in thread B while A is dormant, or only ever updating it in one direction) where concurrency safety is provided by barriers between these phases. But there are also other cases)

The exception is `G1ConcurrentMark::_finger` that has apparently been overlooked in an earlier changes.

Testing: gha

Thanks,
  Thomas

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

Commit messages:
 - 8376126

Changes: https://git.openjdk.org/jdk/pull/29368/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29368&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8376126
  Stats: 55 lines in 3 files changed: 1 ins; 0 del; 54 mod
  Patch: https://git.openjdk.org/jdk/pull/29368.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29368/head:pull/29368

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


More information about the hotspot-gc-dev mailing list