< prev index next >

src/share/vm/gc/g1/g1SerialFullCollector.cpp

Print this page
rev 13071 : [mq]: 8177544-full-gc-scope-tschatzl-rev1

*** 25,63 **** #include "precompiled.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1FullGCScope.hpp" #include "gc/g1/g1MarkSweep.hpp" #include "gc/g1/g1RemSet.inline.hpp" ! #include "gc/g1/g1SerialCollector.hpp" #include "gc/g1/heapRegionRemSet.hpp" #include "gc/shared/referenceProcessor.hpp" ! G1SerialCollector::G1SerialCollector(G1FullGCScope* scope, ReferenceProcessor* reference_processor) : _scope(scope), _reference_processor(reference_processor), _is_alive_mutator(_reference_processor, NULL), _mt_discovery_mutator(_reference_processor, false) { // Temporarily make discovery by the STW ref processor single threaded (non-MT) // and clear the STW ref processor's _is_alive_non_header field. } ! void G1SerialCollector::prepare_collection() { _reference_processor->enable_discovery(); _reference_processor->setup_policy(_scope->should_clear_soft_refs()); } ! void G1SerialCollector::complete_collection() { // Enqueue any discovered reference objects that have // not been removed from the discovered lists. _reference_processor->enqueue_discovered_references(); // Iterate the heap and rebuild the remembered sets. rebuild_remembered_sets(); } ! void G1SerialCollector::collect() { // Do the actual collection work. G1MarkSweep::invoke_at_safepoint(_reference_processor, _scope->should_clear_soft_refs()); } class PostMCRemSetClearClosure: public HeapRegionClosure { --- 25,63 ---- #include "precompiled.hpp" #include "gc/g1/g1CollectedHeap.inline.hpp" #include "gc/g1/g1FullGCScope.hpp" #include "gc/g1/g1MarkSweep.hpp" #include "gc/g1/g1RemSet.inline.hpp" ! #include "gc/g1/g1SerialFullCollector.hpp" #include "gc/g1/heapRegionRemSet.hpp" #include "gc/shared/referenceProcessor.hpp" ! G1SerialFullCollector::G1SerialFullCollector(G1FullGCScope* scope, ReferenceProcessor* reference_processor) : _scope(scope), _reference_processor(reference_processor), _is_alive_mutator(_reference_processor, NULL), _mt_discovery_mutator(_reference_processor, false) { // Temporarily make discovery by the STW ref processor single threaded (non-MT) // and clear the STW ref processor's _is_alive_non_header field. } ! void G1SerialFullCollector::prepare_collection() { _reference_processor->enable_discovery(); _reference_processor->setup_policy(_scope->should_clear_soft_refs()); } ! void G1SerialFullCollector::complete_collection() { // Enqueue any discovered reference objects that have // not been removed from the discovered lists. _reference_processor->enqueue_discovered_references(); // Iterate the heap and rebuild the remembered sets. rebuild_remembered_sets(); } ! void G1SerialFullCollector::collect() { // Do the actual collection work. G1MarkSweep::invoke_at_safepoint(_reference_processor, _scope->should_clear_soft_refs()); } class PostMCRemSetClearClosure: public HeapRegionClosure {
*** 121,131 **** RebuildRSOutOfRegionClosure rebuild_rs(_g1, worker_id); _g1->heap_region_par_iterate(&rebuild_rs, worker_id, &_hrclaimer); } }; ! void G1SerialCollector::rebuild_remembered_sets() { G1CollectedHeap* g1h = G1CollectedHeap::heap(); // First clear the stale remembered sets. PostMCRemSetClearClosure rs_clear(g1h, g1h->g1_barrier_set()); g1h->heap_region_iterate(&rs_clear); --- 121,131 ---- RebuildRSOutOfRegionClosure rebuild_rs(_g1, worker_id); _g1->heap_region_par_iterate(&rebuild_rs, worker_id, &_hrclaimer); } }; ! void G1SerialFullCollector::rebuild_remembered_sets() { G1CollectedHeap* g1h = G1CollectedHeap::heap(); // First clear the stale remembered sets. PostMCRemSetClearClosure rs_clear(g1h, g1h->g1_barrier_set()); g1h->heap_region_iterate(&rs_clear);
< prev index next >