< 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 >