hotspot/src/share/vm/gc/g1/concurrentMark.cpp
changeset 33103 116b558af514
parent 32606 fdaa30d06ada
child 33105 294e48b4f704
equal deleted inserted replaced
33102:81a6fd1ab98d 33103:116b558af514
  1233   _parallel_workers->run_task(&markingTask);
  1233   _parallel_workers->run_task(&markingTask);
  1234   print_stats();
  1234   print_stats();
  1235 }
  1235 }
  1236 
  1236 
  1237 // Helper class to get rid of some boilerplate code.
  1237 // Helper class to get rid of some boilerplate code.
  1238 class G1CMTraceTime : public GCTraceTime {
  1238 class G1CMTraceTime : public StackObj {
       
  1239   GCTraceTimeImpl _gc_trace_time;
  1239   static bool doit_and_prepend(bool doit) {
  1240   static bool doit_and_prepend(bool doit) {
  1240     if (doit) {
  1241     if (doit) {
  1241       gclog_or_tty->put(' ');
  1242       gclog_or_tty->put(' ');
  1242     }
  1243     }
  1243     return doit;
  1244     return doit;
  1244   }
  1245   }
  1245 
  1246 
  1246  public:
  1247  public:
  1247   G1CMTraceTime(const char* title, bool doit)
  1248   G1CMTraceTime(const char* title, bool doit)
  1248     : GCTraceTime(title, doit_and_prepend(doit), false, G1CollectedHeap::heap()->gc_timer_cm(),
  1249     : _gc_trace_time(title, doit_and_prepend(doit), false, G1CollectedHeap::heap()->gc_timer_cm(),
  1249         G1CollectedHeap::heap()->concurrent_mark()->concurrent_gc_id()) {
  1250         G1CollectedHeap::heap()->concurrent_mark()->concurrent_gc_id()) {
  1250   }
  1251   }
  1251 };
  1252 };
  1252 
  1253 
  1253 void ConcurrentMark::checkpointRootsFinal(bool clear_all_soft_refs) {
  1254 void ConcurrentMark::checkpointRootsFinal(bool clear_all_soft_refs) {