equal
deleted
inserted
replaced
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) { |