< prev index next >

src/share/vm/gc/shared/concurrentGCThread.cpp

Print this page
rev 10297 : [mq]: webrev.01
rev 10298 : [mq]: webrev.02

@@ -35,16 +35,16 @@
 
 ConcurrentGCThread::ConcurrentGCThread() :
   _should_terminate(false), _has_terminated(false) {
 };
 
-void ConcurrentGCThread::create_and_start() {
+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, NearMaxPriority);
+    os::set_priority(this, prio);
     if (!_should_terminate && !DisableStartThread) {
       os::start_thread(this);
     }
   }
 }

@@ -86,10 +86,12 @@
 
 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 >