6608862: segv in JvmtiEnvBase::check_for_periodic_clean_up()

Reviewed-by: dholmes, dcubed, jcoomes
This commit is contained in:
Xiaobin Lu 2008-08-15 10:08:20 -07:00
parent f60907fd0a
commit bf2763ee4e

View file

@ -2756,7 +2756,13 @@ void Threads::threads_do(ThreadClosure* tc) {
// For now, just manually iterate through them.
tc->do_thread(VMThread::vm_thread());
Universe::heap()->gc_threads_do(tc);
tc->do_thread(WatcherThread::watcher_thread());
{
// Grab the Terminator_lock to prevent watcher_thread from being terminated.
MutexLockerEx mu(Terminator_lock, Mutex::_no_safepoint_check_flag);
WatcherThread *wt = WatcherThread::watcher_thread();
if (wt != NULL)
tc->do_thread(wt);
}
// If CompilerThreads ever become non-JavaThreads, add them here
}