< prev index next >

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

Print this page
rev 49905 : imported patch 8201492-properly-implement-non-contiguous-reference-processing
rev 49908 : imported patch 8202021-cleanup-referenceprocessor
rev 49909 : imported patch 8202021-stefanj-review
rev 49910 : imported patch 8202017-reference-processor-remove-enqueue

@@ -141,10 +141,16 @@
     } else {
       _keep_alive->do_oop((oop*)_referent_addr);
     }
   }
 
+  // Do enqueuing work, i.e. notifying the GC about the changed discovered pointers.
+  void enqueue();
+
+  // Move enqueued references to the reference pending list.
+  void complete_enqeue();
+
   // NULL out referent pointer.
   void clear_referent();
 
   // Statistics
   NOT_PRODUCT(

@@ -271,13 +277,10 @@
                       bool               clear_referent,
                       BoolObjectClosure* is_alive,
                       OopClosure*        keep_alive,
                       VoidClosure*       complete_gc);
 
-  // Enqueue references with a certain reachability level
-  void enqueue_discovered_reflist(DiscoveredList& refs_list);
-
   // "Preclean" all the discovered reference lists
   // by removing references with strongly reachable referents.
   // The first argument is a predicate on an oop that indicates
   // its (strong) reachability and the second is a closure that
   // may be used to incrementalize or abort the precleaning process.

@@ -293,13 +296,10 @@
 
   // Returns the name of the discovered reference list
   // occupying the i / _num_queues slot.
   const char* list_name(uint i);
 
-  void enqueue_discovered_reflists(AbstractRefProcTaskExecutor* task_executor,
-                                   ReferenceProcessorPhaseTimes* phase_times);
-
   // "Preclean" the given discovered reference list
   // by removing references with strongly reachable referents.
   // Currently used in support of CMS only.
   void preclean_discovered_reflist(DiscoveredList&    refs_list,
                                    BoolObjectClosure* is_alive,

@@ -385,12 +385,10 @@
   void set_enqueuing_is_done(bool v) { _enqueuing_is_done = v; }
 
   // iterate over oops
   void weak_oops_do(OopClosure* f);       // weak roots
 
-  // Balance each of the discovered lists.
-  void balance_all_queues();
   void verify_list(DiscoveredList& ref_list);
 
   // Discover a Reference object, using appropriate discovery criteria
   virtual bool discover_reference(oop obj, ReferenceType rt);
 

@@ -403,14 +401,10 @@
                                 OopClosure*                   keep_alive,
                                 VoidClosure*                  complete_gc,
                                 AbstractRefProcTaskExecutor*  task_executor,
                                 ReferenceProcessorPhaseTimes* phase_times);
 
-  // Enqueue references at end of GC (called by the garbage collector)
-  void enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor,
-                                     ReferenceProcessorPhaseTimes* phase_times);
-
   // If a discovery is in process that is being superceded, abandon it: all
   // the discovered lists will be empty, and all the objects on them will
   // have NULL discovered fields.  Must be called only at a safepoint.
   void abandon_partial_discovery();
 
< prev index next >