< prev index next >

src/hotspot/share/gc/g1/g1FullCollector.cpp

Print this page
rev 48000 : [mq]: open.patch


  54 static void deactivate_derived_pointers() {
  55 #if COMPILER2_OR_JVMCI
  56   DerivedPointerTable::set_active(false);
  57 #endif
  58 }
  59 
  60 static void update_derived_pointers() {
  61 #if COMPILER2_OR_JVMCI
  62   DerivedPointerTable::update_pointers();
  63 #endif
  64 }
  65 
  66 G1CMBitMap* G1FullCollector::mark_bitmap() {
  67   return _heap->concurrent_mark()->next_mark_bitmap();
  68 }
  69 
  70 ReferenceProcessor* G1FullCollector::reference_processor() {
  71   return _heap->ref_processor_stw();
  72 }
  73 
  74 G1FullCollector::G1FullCollector(G1CollectedHeap* heap, bool explicit_gc, bool clear_soft_refs) :
  75     _heap(heap),
  76     _scope(explicit_gc, clear_soft_refs),
  77     _num_workers(heap->workers()->active_workers()),
  78     _oop_queue_set(_num_workers),
  79     _array_queue_set(_num_workers),
  80     _preserved_marks_set(true),
  81     _serial_compaction_point(),
  82     _is_alive(heap->concurrent_mark()->next_mark_bitmap()),
  83     _is_alive_mutator(heap->ref_processor_stw(), &_is_alive) {
  84   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
  85 
  86   _preserved_marks_set.init(_num_workers);
  87   _markers = NEW_C_HEAP_ARRAY(G1FullGCMarker*, _num_workers, mtGC);
  88   _compaction_points = NEW_C_HEAP_ARRAY(G1FullGCCompactionPoint*, _num_workers, mtGC);
  89   for (uint i = 0; i < _num_workers; i++) {
  90     _markers[i] = new G1FullGCMarker(i, _preserved_marks_set.get(i), mark_bitmap());
  91     _compaction_points[i] = new G1FullGCCompactionPoint();
  92     _oop_queue_set.register_queue(i, marker(i)->oop_stack());
  93     _array_queue_set.register_queue(i, marker(i)->objarray_stack());
  94   }
  95 }
  96 




  54 static void deactivate_derived_pointers() {
  55 #if COMPILER2_OR_JVMCI
  56   DerivedPointerTable::set_active(false);
  57 #endif
  58 }
  59 
  60 static void update_derived_pointers() {
  61 #if COMPILER2_OR_JVMCI
  62   DerivedPointerTable::update_pointers();
  63 #endif
  64 }
  65 
  66 G1CMBitMap* G1FullCollector::mark_bitmap() {
  67   return _heap->concurrent_mark()->next_mark_bitmap();
  68 }
  69 
  70 ReferenceProcessor* G1FullCollector::reference_processor() {
  71   return _heap->ref_processor_stw();
  72 }
  73 
  74 G1FullCollector::G1FullCollector(G1CollectedHeap* heap, GCMemoryManager* memory_manager, bool explicit_gc, bool clear_soft_refs) :
  75     _heap(heap),
  76     _scope(memory_manager, explicit_gc, clear_soft_refs),
  77     _num_workers(heap->workers()->active_workers()),
  78     _oop_queue_set(_num_workers),
  79     _array_queue_set(_num_workers),
  80     _preserved_marks_set(true),
  81     _serial_compaction_point(),
  82     _is_alive(heap->concurrent_mark()->next_mark_bitmap()),
  83     _is_alive_mutator(heap->ref_processor_stw(), &_is_alive) {
  84   assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint");
  85 
  86   _preserved_marks_set.init(_num_workers);
  87   _markers = NEW_C_HEAP_ARRAY(G1FullGCMarker*, _num_workers, mtGC);
  88   _compaction_points = NEW_C_HEAP_ARRAY(G1FullGCCompactionPoint*, _num_workers, mtGC);
  89   for (uint i = 0; i < _num_workers; i++) {
  90     _markers[i] = new G1FullGCMarker(i, _preserved_marks_set.get(i), mark_bitmap());
  91     _compaction_points[i] = new G1FullGCCompactionPoint();
  92     _oop_queue_set.register_queue(i, marker(i)->oop_stack());
  93     _array_queue_set.register_queue(i, marker(i)->objarray_stack());
  94   }
  95 }
  96 


< prev index next >