RFR: 8195972: Refactor oops in JNI to use the Access API
kim.barrett at oracle.com
Thu Mar 29 21:38:35 UTC 2018
> On Mar 29, 2018, at 3:49 PM, coleen.phillimore at oracle.com wrote:
> Kim's change looks correct as far as I can tell. IN_CONCURRENT_ROOT is equivalent to IN_ROOT right now, isn't it?
No, they are not equivalent.
RootAccess<IN_CONCURRENT_ROOT>::oop_store(…) must generate the SATB pre-barrier.
RootAccess<>::oop_store(…) should not generate the SATB pre-barrier.
RootAccess<...> is just Access<IN_ROOT | …>
(Currently RootAccess is a class, in C++11 it could be a template type alias.)
I feel a bit unhappy that IN_CONCURRENT_ROOT and IN_ROOT are not mutually exclusive. If I
recall correctly, IN_CONCURRENT_ROOT will actually default in IN_ROOT if the latter is not
present, but I might be mis-remembering. (Or alternatively, that we don’t have a distinct name for
And I have no idea what the relation between either of those and IN_ARCHIVE_ROOT might be;
the latter has no documentation (see JDK-8198381).
More information about the hotspot-dev