< prev index next >

src/share/vm/runtime/thread.cpp

Print this page

        

@@ -3390,10 +3390,16 @@
   ALL_JAVA_THREADS(p) {
     if (p->claim_oops_do(true, cp)) {
       tc->do_thread(p);
     }
   }
+  // This function is used by ParallelSPCleanupTask in safepoint.cpp
+  // for cleaning up JavaThreads, but we have to keep the VMThread's
+  // _oops_do_parity field in sync so we don't miss a parallel GC on
+  // the VMThread.
+  VMThread* vmt = VMThread::vm_thread();
+  (void)vmt->claim_oops_do(true, cp);
 }
 
 // The system initialization in the library has three phases.
 //
 // Phase 1: java.lang.System class initialization
< prev index next >