src/hotspot/share/runtime/vmThread.cpp
changeset 52386 e256b3b62e20
parent 52302 912b79d983d9
child 52877 9e041366c764
--- a/src/hotspot/share/runtime/vmThread.cpp	Fri Nov 02 08:33:59 2018 +0100
+++ b/src/hotspot/share/runtime/vmThread.cpp	Fri Nov 02 14:13:05 2018 +0100
@@ -319,7 +319,9 @@
 // Notify the VMThread that the last non-daemon JavaThread has terminated,
 // and wait until operation is performed.
 void VMThread::wait_for_vm_thread_exit() {
-  { MutexLocker mu(VMOperationQueue_lock);
+  assert(Thread::current()->is_Java_thread(), "Should be a JavaThread");
+  assert(((JavaThread*)Thread::current())->is_terminated(), "Should be terminated");
+  { MutexLockerEx mu(VMOperationQueue_lock, Mutex::_no_safepoint_check_flag);
     _should_terminate = true;
     VMOperationQueue_lock->notify();
   }