RFR: 8315131: Clarify VarHandle set/get access on 32-bit platforms [v3]

Chen Liang liach at openjdk.org
Thu Jul 17 18:02:50 UTC 2025


On Wed, 16 Jul 2025 09:28:28 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:

>> Chen Liang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   "may be non-atomic"
>
> src/java.base/share/classes/java/lang/foreign/MemoryLayout.java line 281:
> 
>> 279:  * <li>read write access modes for all {@code T}. On 32-bit platforms, access modes
>> 280:  *     {@code get} and {@code set} for {@code long}, {@code double} and {@code MemorySegment}
>> 281:  *     are supported but may be non-atomic, as described in Section {@jls 17.7}
> 
> Suggestion:
> 
>  *     are supported but may be non-atomic in the sense of Section {@jls 17.7}
> 
> 
> A useful taxonomy has atomic _read-modify-write_ operations (atomic updates, numeric atomic updates, bitwise atomic updates, like CASes, etc.), and atomic _access_ operations, that is, atomic loads and stores (atomic reads and writes).
> 
> But the reference to the JLS section here should clarify what is meant in this specific context, namely access operation, not read-modify-write operations.

Yep, to distinguish access and the encapsulated read-modify-write atomicity, I decided to avoid using "atomic"/"non-atomic" altogether - now it is just "make no atomicity guarantee"

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26258#discussion_r2213964762


More information about the core-libs-dev mailing list