< prev index next >
src/share/vm/gc/shared/referenceProcessor.hpp
Print this page
rev 11747 : [mq]: per.hotspot.patch
*** 288,298 ****
BoolObjectClosure* is_alive,
OopClosure* keep_alive,
VoidClosure* complete_gc);
// Enqueue references with a certain reachability level
! void enqueue_discovered_reflist(DiscoveredList& refs_list, HeapWord* pending_list_addr);
// "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
--- 288,298 ----
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
*** 309,319 ****
// Returns the name of the discovered reference list
// occupying the i / _num_q slot.
const char* list_name(uint i);
! void enqueue_discovered_reflists(HeapWord* pending_list_addr, AbstractRefProcTaskExecutor* task_executor);
protected:
// "Preclean" the given discovered reference list
// by removing references with strongly reachable referents.
// Currently used in support of CMS only.
--- 309,319 ----
// Returns the name of the discovered reference list
// occupying the i / _num_q slot.
const char* list_name(uint i);
! void enqueue_discovered_reflists(AbstractRefProcTaskExecutor* task_executor);
protected:
// "Preclean" the given discovered reference list
// by removing references with strongly reachable referents.
// Currently used in support of CMS only.
*** 422,432 ****
VoidClosure* complete_gc,
AbstractRefProcTaskExecutor* task_executor,
GCTimer *gc_timer);
// Enqueue references at end of GC (called by the garbage collector)
! bool enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL);
// 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();
--- 422,432 ----
VoidClosure* complete_gc,
AbstractRefProcTaskExecutor* task_executor,
GCTimer *gc_timer);
// Enqueue references at end of GC (called by the garbage collector)
! void enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL);
// 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();
*** 611,634 ****
// Abstract reference processing task to execute.
class AbstractRefProcTaskExecutor::EnqueueTask {
protected:
EnqueueTask(ReferenceProcessor& ref_processor,
DiscoveredList refs_lists[],
- HeapWord* pending_list_addr,
int n_queues)
: _ref_processor(ref_processor),
_refs_lists(refs_lists),
- _pending_list_addr(pending_list_addr),
_n_queues(n_queues)
{ }
public:
virtual void work(unsigned int work_id) = 0;
protected:
ReferenceProcessor& _ref_processor;
DiscoveredList* _refs_lists;
- HeapWord* _pending_list_addr;
int _n_queues;
};
#endif // SHARE_VM_GC_SHARED_REFERENCEPROCESSOR_HPP
--- 611,631 ----
< prev index next >