hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
void G1CollectedHeap::reset_free_regions_coming() {
{- -------------------------------------------
(1) _free_regions_coming フィールドを false に戻す.
その後, SecondaryFreeList_lock に対して Monitor::notify_all() を呼んで
もし待っているスレッドがいれば起床させておく.
(See: G1CollectedHeap::wait_while_free_regions_coming())
---------------------------------------- -}
{
assert(free_regions_coming(), "pre-condition");
MutexLockerEx x(SecondaryFreeList_lock, Mutex::_no_safepoint_check_flag);
_free_regions_coming = false;
SecondaryFreeList_lock->notify_all();
}
{- -------------------------------------------
(1) (トレース出力)
---------------------------------------- -}
if (G1ConcRegionFreeingVerbose) {
gclog_or_tty->print_cr("G1ConcRegionFreeing [cm thread] : "
"reset free regions coming");
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.