< prev index next >

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

Print this page
rev 56783 : [mq]: simplify


 376         delay_to_keep_mmu(policy, false /* cleanup */);
 377       }
 378 
 379       if (!_cm->has_aborted()) {
 380         CMCleanup cl_cl(_cm);
 381         VM_G1Concurrent op(&cl_cl, "Pause Cleanup");
 382         VMThread::execute(&op);
 383       }
 384 
 385       // We now want to allow clearing of the marking bitmap to be
 386       // suspended by a collection pause.
 387       // We may have aborted just before the remark. Do not bother clearing the
 388       // bitmap then, as it has been done during mark abort.
 389       if (!_cm->has_aborted()) {
 390         G1ConcPhase p(G1ConcurrentPhase::CLEANUP_FOR_NEXT_MARK, this);
 391         _cm->cleanup_for_next_mark();
 392       }
 393     }
 394 
 395     // Update the number of full collections that have been
 396     // completed. This will also notify the FullGCCount_lock in case a
 397     // Java thread is waiting for a full GC to happen (e.g., it
 398     // called System.gc() with +ExplicitGCInvokesConcurrent).
 399     {
 400       SuspendibleThreadSetJoiner sts_join;
 401       g1h->increment_old_marking_cycles_completed(true /* concurrent */);
 402 
 403       _cm->concurrent_cycle_end();
 404     }
 405 
 406     cpmanager.set_phase(G1ConcurrentPhase::IDLE, _cm->has_aborted() /* force */);
 407   }
 408   _cm->root_regions()->cancel_scan();
 409 }
 410 
 411 void G1ConcurrentMarkThread::stop_service() {
 412   MutexLocker ml(CGC_lock, Mutex::_no_safepoint_check_flag);
 413   CGC_lock->notify_all();
 414 }
 415 
 416 


 376         delay_to_keep_mmu(policy, false /* cleanup */);
 377       }
 378 
 379       if (!_cm->has_aborted()) {
 380         CMCleanup cl_cl(_cm);
 381         VM_G1Concurrent op(&cl_cl, "Pause Cleanup");
 382         VMThread::execute(&op);
 383       }
 384 
 385       // We now want to allow clearing of the marking bitmap to be
 386       // suspended by a collection pause.
 387       // We may have aborted just before the remark. Do not bother clearing the
 388       // bitmap then, as it has been done during mark abort.
 389       if (!_cm->has_aborted()) {
 390         G1ConcPhase p(G1ConcurrentPhase::CLEANUP_FOR_NEXT_MARK, this);
 391         _cm->cleanup_for_next_mark();
 392       }
 393     }
 394 
 395     // Update the number of full collections that have been
 396     // completed. This will also notify the G1FullGCCount_lock in case a
 397     // Java thread is waiting for a full GC to happen (e.g., it
 398     // called System.gc() with +ExplicitGCInvokesConcurrent).
 399     {
 400       SuspendibleThreadSetJoiner sts_join;
 401       g1h->increment_old_marking_cycles_completed(true /* concurrent */);
 402 
 403       _cm->concurrent_cycle_end();
 404     }
 405 
 406     cpmanager.set_phase(G1ConcurrentPhase::IDLE, _cm->has_aborted() /* force */);
 407   }
 408   _cm->root_regions()->cancel_scan();
 409 }
 410 
 411 void G1ConcurrentMarkThread::stop_service() {
 412   MutexLocker ml(CGC_lock, Mutex::_no_safepoint_check_flag);
 413   CGC_lock->notify_all();
 414 }
 415 
 416 
< prev index next >