src/share/vm/gc_interface/collectedHeap.cpp

Print this page
rev 5062 : fix nmethod unregister synchronization


 101 }
 102 
 103 void CollectedHeap::print_heap_before_gc() {
 104   if (PrintHeapAtGC) {
 105     Universe::print_heap_before_gc();
 106   }
 107   if (_gc_heap_log != NULL) {
 108     _gc_heap_log->log_heap_before();
 109   }
 110 }
 111 
 112 void CollectedHeap::print_heap_after_gc() {
 113   if (PrintHeapAtGC) {
 114     Universe::print_heap_after_gc();
 115   }
 116   if (_gc_heap_log != NULL) {
 117     _gc_heap_log->log_heap_after();
 118   }
 119 }
 120 










 121 void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
 122   const GCHeapSummary& heap_summary = create_heap_summary();
 123   const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
 124   gc_tracer->report_gc_heap_summary(when, heap_summary, metaspace_summary);
 125 }
 126 
 127 void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) {
 128   trace_heap(GCWhen::BeforeGC, gc_tracer);
 129 }
 130 
 131 void CollectedHeap::trace_heap_after_gc(GCTracer* gc_tracer) {
 132   trace_heap(GCWhen::AfterGC, gc_tracer);
 133 }
 134 
 135 // Memory state functions.
 136 
 137 
 138 CollectedHeap::CollectedHeap() : _n_par_threads(0)
 139 {
 140   const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));




 101 }
 102 
 103 void CollectedHeap::print_heap_before_gc() {
 104   if (PrintHeapAtGC) {
 105     Universe::print_heap_before_gc();
 106   }
 107   if (_gc_heap_log != NULL) {
 108     _gc_heap_log->log_heap_before();
 109   }
 110 }
 111 
 112 void CollectedHeap::print_heap_after_gc() {
 113   if (PrintHeapAtGC) {
 114     Universe::print_heap_after_gc();
 115   }
 116   if (_gc_heap_log != NULL) {
 117     _gc_heap_log->log_heap_after();
 118   }
 119 }
 120 
 121 void CollectedHeap::register_nmethod(nmethod* nm) {
 122   assert(SafepointSynchronize::is_at_safepoint() || CodeCache_lock->is_locked(),
 123     err_msg("Must be at safepoint or code cache locked (code cache locked: %d)", CodeCache_lock->is_locked()));
 124 }
 125 
 126 void CollectedHeap::unregister_nmethod(nmethod* nm) {
 127   assert(SafepointSynchronize::is_at_safepoint() || CodeCache_lock->is_locked(),
 128     err_msg("Must be at safepoint or code cache locked (code cache locked: %d)", CodeCache_lock->is_locked()));
 129 }
 130 
 131 void CollectedHeap::trace_heap(GCWhen::Type when, GCTracer* gc_tracer) {
 132   const GCHeapSummary& heap_summary = create_heap_summary();
 133   const MetaspaceSummary& metaspace_summary = create_metaspace_summary();
 134   gc_tracer->report_gc_heap_summary(when, heap_summary, metaspace_summary);
 135 }
 136 
 137 void CollectedHeap::trace_heap_before_gc(GCTracer* gc_tracer) {
 138   trace_heap(GCWhen::BeforeGC, gc_tracer);
 139 }
 140 
 141 void CollectedHeap::trace_heap_after_gc(GCTracer* gc_tracer) {
 142   trace_heap(GCWhen::AfterGC, gc_tracer);
 143 }
 144 
 145 // Memory state functions.
 146 
 147 
 148 CollectedHeap::CollectedHeap() : _n_par_threads(0)
 149 {
 150   const size_t max_len = size_t(arrayOopDesc::max_array_length(T_INT));