src/hotspot/share/gc/g1/g1CodeCacheRemSet.cpp
changeset 59247 56bf71d64d51
parent 52631 3009ca99de32
child 59252 623722a6aeb9
equal deleted inserted replaced
59246:fcad92f425c5 59247:56bf71d64d51
   156 G1CodeRootSet::~G1CodeRootSet() {
   156 G1CodeRootSet::~G1CodeRootSet() {
   157   delete _table;
   157   delete _table;
   158 }
   158 }
   159 
   159 
   160 G1CodeRootSetTable* G1CodeRootSet::load_acquire_table() {
   160 G1CodeRootSetTable* G1CodeRootSet::load_acquire_table() {
   161   return OrderAccess::load_acquire(&_table);
   161   return Atomic::load_acquire(&_table);
   162 }
   162 }
   163 
   163 
   164 void G1CodeRootSet::allocate_small_table() {
   164 void G1CodeRootSet::allocate_small_table() {
   165   G1CodeRootSetTable* temp = new G1CodeRootSetTable(SmallSize);
   165   G1CodeRootSetTable* temp = new G1CodeRootSetTable(SmallSize);
   166 
   166 
   167   OrderAccess::release_store(&_table, temp);
   167   Atomic::release_store(&_table, temp);
   168 }
   168 }
   169 
   169 
   170 void G1CodeRootSetTable::purge_list_append(G1CodeRootSetTable* table) {
   170 void G1CodeRootSetTable::purge_list_append(G1CodeRootSetTable* table) {
   171   for (;;) {
   171   for (;;) {
   172     table->_purge_next = _purge_list;
   172     table->_purge_next = _purge_list;
   192 
   192 
   193   _table->copy_to(temp);
   193   _table->copy_to(temp);
   194 
   194 
   195   G1CodeRootSetTable::purge_list_append(_table);
   195   G1CodeRootSetTable::purge_list_append(_table);
   196 
   196 
   197   OrderAccess::release_store(&_table, temp);
   197   Atomic::release_store(&_table, temp);
   198 }
   198 }
   199 
   199 
   200 void G1CodeRootSet::purge() {
   200 void G1CodeRootSet::purge() {
   201   G1CodeRootSetTable::purge();
   201   G1CodeRootSetTable::purge();
   202 }
   202 }