diff -r fcad92f425c5 -r 56bf71d64d51 src/hotspot/share/oops/klass.cpp --- a/src/hotspot/share/oops/klass.cpp Mon Nov 25 14:06:13 2019 +0100 +++ b/src/hotspot/share/oops/klass.cpp Mon Nov 25 12:22:13 2019 +0100 @@ -362,7 +362,7 @@ Klass* Klass::subklass(bool log) const { // Need load_acquire on the _subklass, because it races with inserts that // publishes freshly initialized data. - for (Klass* chain = OrderAccess::load_acquire(&_subklass); + for (Klass* chain = Atomic::load_acquire(&_subklass); chain != NULL; // Do not need load_acquire on _next_sibling, because inserts never // create _next_sibling edges to dead data. @@ -402,7 +402,7 @@ void Klass::set_subklass(Klass* s) { assert(s != this, "sanity check"); - OrderAccess::release_store(&_subklass, s); + Atomic::release_store(&_subklass, s); } void Klass::set_next_sibling(Klass* s) { @@ -427,7 +427,7 @@ super->clean_subklass(); for (;;) { - Klass* prev_first_subklass = OrderAccess::load_acquire(&_super->_subklass); + Klass* prev_first_subklass = Atomic::load_acquire(&_super->_subklass); if (prev_first_subklass != NULL) { // set our sibling to be the superklass' previous first subklass assert(prev_first_subklass->is_loader_alive(), "May not attach not alive klasses"); @@ -446,7 +446,7 @@ void Klass::clean_subklass() { for (;;) { // Need load_acquire, due to contending with concurrent inserts - Klass* subklass = OrderAccess::load_acquire(&_subklass); + Klass* subklass = Atomic::load_acquire(&_subklass); if (subklass == NULL || subklass->is_loader_alive()) { return; }