< prev index next >

src/hotspot/share/gc/shared/referenceProcessor.hpp

Print this page
rev 50051 : imported patch 8201491-precleaning
rev 50052 : imported patch 8201491-kbarrett-review
rev 50054 : imported patch 8202780-remove-enqueuetask-code
rev 50055 : imported patch 8202781-fix-typo-in-DiscoveredListIterator-complete_enqeue


 130     _prev_discovered = _current_discovered;
 131     move_to_next();
 132   }
 133 
 134   // Remove the current reference from the list
 135   void remove();
 136 
 137   // Make the referent alive.
 138   inline void make_referent_alive() {
 139     if (UseCompressedOops) {
 140       _keep_alive->do_oop((narrowOop*)_referent_addr);
 141     } else {
 142       _keep_alive->do_oop((oop*)_referent_addr);
 143     }
 144   }
 145 
 146   // Do enqueuing work, i.e. notifying the GC about the changed discovered pointers.
 147   void enqueue();
 148 
 149   // Move enqueued references to the reference pending list.
 150   void complete_enqeue();
 151 
 152   // NULL out referent pointer.
 153   void clear_referent();
 154 
 155   // Statistics
 156   NOT_PRODUCT(
 157   inline size_t processed() const { return _processed; }
 158   inline size_t removed() const   { return _removed; }
 159   )
 160 
 161   inline void move_to_next() {
 162     if (_current_discovered == _next_discovered) {
 163       // End of the list.
 164       _current_discovered = NULL;
 165     } else {
 166       _current_discovered = _next_discovered;
 167     }
 168     assert(_current_discovered != _first_seen, "cyclic ref_list found");
 169     NOT_PRODUCT(_processed++);
 170   }




 130     _prev_discovered = _current_discovered;
 131     move_to_next();
 132   }
 133 
 134   // Remove the current reference from the list
 135   void remove();
 136 
 137   // Make the referent alive.
 138   inline void make_referent_alive() {
 139     if (UseCompressedOops) {
 140       _keep_alive->do_oop((narrowOop*)_referent_addr);
 141     } else {
 142       _keep_alive->do_oop((oop*)_referent_addr);
 143     }
 144   }
 145 
 146   // Do enqueuing work, i.e. notifying the GC about the changed discovered pointers.
 147   void enqueue();
 148 
 149   // Move enqueued references to the reference pending list.
 150   void complete_enqueue();
 151 
 152   // NULL out referent pointer.
 153   void clear_referent();
 154 
 155   // Statistics
 156   NOT_PRODUCT(
 157   inline size_t processed() const { return _processed; }
 158   inline size_t removed() const   { return _removed; }
 159   )
 160 
 161   inline void move_to_next() {
 162     if (_current_discovered == _next_discovered) {
 163       // End of the list.
 164       _current_discovered = NULL;
 165     } else {
 166       _current_discovered = _next_discovered;
 167     }
 168     assert(_current_discovered != _first_seen, "cyclic ref_list found");
 169     NOT_PRODUCT(_processed++);
 170   }


< prev index next >