< prev index next >
src/hotspot/share/gc/shared/referenceProcessor.hpp
Print this page
rev 49831 : imported patch 8201492-properly-implement-non-contiguous-reference-processing
rev 49834 : [mq]: 8202021-cleanup-referenceprocessor
rev 49835 : [mq]: 8202021-stefanj-review
rev 49836 : [mq]: 8202017-reference-processor-remove-enqueue
*** 140,149 ****
--- 140,155 ----
} 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(
*** 270,282 ****
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.
--- 276,285 ----
*** 292,304 ****
// 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,
--- 295,304 ----
*** 384,395 ****
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
bool discover_reference(oop obj, ReferenceType rt);
--- 384,393 ----
*** 402,415 ****
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();
--- 400,409 ----
< prev index next >