< prev index next >
src/share/vm/gc/g1/g1YoungRemSetSamplingThread.cpp
Print this page
rev 10311 : [mq]: webrev.01
*** 55,79 ****
Terminator_lock->wait();
}
}
}
! G1YoungRemSetSamplingThread::G1YoungRemSetSamplingThread() : ConcurrentGCThread() {
! _monitor = new Monitor(Mutex::nonleaf,
"G1YoungRemSetSamplingThread monitor",
true,
! Monitor::_safepoint_check_never);
!
set_name("G1 Young RemSet Sampling");
create_and_start();
}
void G1YoungRemSetSamplingThread::sleep_before_next_cycle() {
! MutexLockerEx x(_monitor, Mutex::_no_safepoint_check_flag);
if (!_should_terminate) {
intx waitms = G1ConcRefinementServiceIntervalMillis; // 300, really should be?
! _monitor->wait(Mutex::_no_safepoint_check_flag, waitms);
}
}
void G1YoungRemSetSamplingThread::run_service() {
double vtime_start = os::elapsedVTime();
--- 55,83 ----
Terminator_lock->wait();
}
}
}
! G1YoungRemSetSamplingThread::G1YoungRemSetSamplingThread() :
! ConcurrentGCThread(),
! _monitor(Mutex::nonleaf,
"G1YoungRemSetSamplingThread monitor",
true,
! Monitor::_safepoint_check_never) {
set_name("G1 Young RemSet Sampling");
create_and_start();
}
+ G1YoungRemSetSamplingThread::~G1YoungRemSetSamplingThread() {
+ assert(!_monitor.is_locked(), "don't delete locked monitor");
+ }
+
void G1YoungRemSetSamplingThread::sleep_before_next_cycle() {
! MutexLockerEx x(&_monitor, Mutex::_no_safepoint_check_flag);
if (!_should_terminate) {
intx waitms = G1ConcRefinementServiceIntervalMillis; // 300, really should be?
! _monitor.wait(Mutex::_no_safepoint_check_flag, waitms);
}
}
void G1YoungRemSetSamplingThread::run_service() {
double vtime_start = os::elapsedVTime();
*** 90,101 ****
sleep_before_next_cycle();
}
}
void G1YoungRemSetSamplingThread::stop_service() {
! MutexLockerEx x(_monitor, Mutex::_no_safepoint_check_flag);
! _monitor->notify();
}
void G1YoungRemSetSamplingThread::sample_young_list_rs_lengths() {
SuspendibleThreadSetJoiner sts;
G1CollectedHeap* g1h = G1CollectedHeap::heap();
--- 94,105 ----
sleep_before_next_cycle();
}
}
void G1YoungRemSetSamplingThread::stop_service() {
! MutexLockerEx x(&_monitor, Mutex::_no_safepoint_check_flag);
! _monitor.notify();
}
void G1YoungRemSetSamplingThread::sample_young_list_rs_lengths() {
SuspendibleThreadSetJoiner sts;
G1CollectedHeap* g1h = G1CollectedHeap::heap();
< prev index next >