RFR: 8374878: Add Atomic<T>::compare_set
Stefan Karlsson
stefank at openjdk.org
Fri Jan 9 10:10:20 UTC 2026
On Fri, 9 Jan 2026 09:47:18 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> Following up on [JDK-8367013](https://bugs.openjdk.org/browse/JDK-8367013) improvement, there is an opportunity to rewrite some of our low-level `cas(oldv, newv) == oldv` patterns to more straight-forward compare-and-set helper method. This is useful when you do not actually care about the result that used to be in memory or that is currently in memory.
>
> Java atomics already have this distinction; arguably due to historical timeline of having compare-and-set before introducing compare-and-exchange.
>
> Found this when converting Epsilon to Atomic<T> ([JDK-8374876](https://bugs.openjdk.org/browse/JDK-8374876)), where this method would simplify the code a bit. I looked around current uses of `compare_exchange` and rewrote them to `compare_set` to show what simplifications are possible.
Looks good to me, but let's at least wait for Kim's review.
-------------
Marked as reviewed by stefank (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/29135#pullrequestreview-3643260173
More information about the hotspot-dev
mailing list