< prev index next >

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

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

*** 73,82 **** --- 73,108 ---- _has_terminated = true; Terminator_lock->notify(); } } + void ConcurrentGCThread::run() { + initialize_in_thread(); + wait_for_universe_init(); + + run_service(); + + terminate(); + } + + void ConcurrentGCThread::stop() { + // it is ok to take late safepoints here, if needed + { + MutexLockerEx mu(Terminator_lock); + _should_terminate = true; + } + + stop_service(); + + { + MutexLockerEx mu(Terminator_lock); + while (!_has_terminated) { + Terminator_lock->wait(); + } + } + } + static void _sltLoop(JavaThread* thread, TRAPS) { SurrogateLockerThread* slt = (SurrogateLockerThread*)thread; slt->loop(); }
< prev index next >