Another problem is that when dealing with certain inherently not j-typed types like pointers, hacks were built that allowed them using _ptr member functions that had to be specialized on every architecture supported by Java.
Yet another problem is yet another exception, like size_t, that does not quite fit being a pointer and isn't necessarily mapped to any j-type. Then yet more exceptions were built on top.
As a remedy to the above mentioned problems, I propose to generalize the Atomic implementation to use templates instead.
- blocks
-
JDK-8188220 Remove Atomic::*_ptr() uses and overloads from hotspot
- Resolved
- duplicates
-
JDK-8058960 Add size_t versions of Atomic::cmpxchg
- Closed
- relates to
-
JDK-8187977 Generalize Atomic::xchg to use templates
- Resolved
-
JDK-8186476 Generalize Atomic::add with templates
- Resolved
-
JDK-8188224 Generalize Atomic::load/store to use templates
- Resolved
-
JDK-8188813 Generalize OrderAccess to use templates
- Resolved
-
JDK-8188774 Tidy up atomic.hpp after adding templates
- Closed
-
JDK-8186166 Generalize Atomic::cmpxchg with templates
- Resolved
-
JDK-8186903 Remove j-types from Atomic
- Resolved