< prev index next >
src/hotspot/share/gc/g1/g1FullCollector.hpp
Print this page
rev 49944 : imported patch 8201492-properly-implement-non-contiguous-reference-processing
@@ -40,10 +40,19 @@
class G1FullGCScope;
class G1FullGCCompactionPoint;
class GCMemoryManager;
class ReferenceProcessor;
+// Subject-to-discovery closure for reference processing during Full GC. During
+// Full GC the whole heap is subject to discovery.
+class G1FullGCSubjectToDiscoveryClosure: public BoolObjectClosure {
+public:
+ bool do_object_b(oop p) {
+ return (p != NULL);
+ }
+};
+
// The G1FullCollector holds data associated with the current Full GC.
class G1FullCollector : StackObj {
G1CollectedHeap* _heap;
G1FullGCScope _scope;
uint _num_workers;
@@ -56,10 +65,13 @@
G1IsAliveClosure _is_alive;
ReferenceProcessorIsAliveMutator _is_alive_mutator;
static uint calc_active_workers();
+ G1FullGCSubjectToDiscoveryClosure _always_subject_to_discovery;
+ ReferenceProcessorSubjectToDiscoveryMutator _is_subject_mutator;
+
public:
G1FullCollector(G1CollectedHeap* heap, GCMemoryManager* memory_manager, bool explicit_gc, bool clear_soft_refs);
~G1FullCollector();
void prepare_collection();
< prev index next >