< prev index next >
src/share/vm/gc/shared/concurrentGCThread.cpp
Print this page
rev 10297 : [mq]: webrev.01
rev 10298 : [mq]: webrev.02
*** 35,50 ****
ConcurrentGCThread::ConcurrentGCThread() :
_should_terminate(false), _has_terminated(false) {
};
! void ConcurrentGCThread::create_and_start() {
if (os::create_thread(this, os::cgc_thread)) {
// XXX: need to set this to low priority
// unless "aggressive mode" set; priority
// should be just less than that of VMThread.
! os::set_priority(this, NearMaxPriority);
if (!_should_terminate && !DisableStartThread) {
os::start_thread(this);
}
}
}
--- 35,50 ----
ConcurrentGCThread::ConcurrentGCThread() :
_should_terminate(false), _has_terminated(false) {
};
! void ConcurrentGCThread::create_and_start(ThreadPriority prio) {
if (os::create_thread(this, os::cgc_thread)) {
// XXX: need to set this to low priority
// unless "aggressive mode" set; priority
// should be just less than that of VMThread.
! os::set_priority(this, prio);
if (!_should_terminate && !DisableStartThread) {
os::start_thread(this);
}
}
}
*** 86,95 ****
--- 86,97 ----
void ConcurrentGCThread::stop() {
// it is ok to take late safepoints here, if needed
{
MutexLockerEx mu(Terminator_lock);
+ assert(!_has_terminated, "stop should only be called once");
+ assert(!_should_terminate, "stop should only be called once");
_should_terminate = true;
}
stop_service();
< prev index next >