< prev index next >

src/hotspot/share/runtime/vmThread.cpp

Print this page
rev 54213 : [mq]: 8220774-handshakealot-v3
rev 54214 : [mq]: 8220774-handshakealot-v4

@@ -444,16 +444,16 @@
 #endif
   }
 };
 
 VM_Operation* VMThread::no_op_safepoint() {
-  // Must check for handshakes first, since ops returns.
+  // Check for handshakes first since we may need to return a VMop.
   if (HandshakeALot) {
     HandshakeALotTC haltc;
     Handshake::execute(&haltc);
   }
-  // Check for a true cleanup first, trying to keep stats correct.
+  // Check for a cleanup before SafepointALot to keep stats correct.
   long interval_ms = SafepointTracing::time_since_last_safepoint_ms();
   bool max_time_exceeded = GuaranteedSafepointInterval != 0 &&
                            (interval_ms >= GuaranteedSafepointInterval);
   if (max_time_exceeded && SafepointSynchronize::is_cleanup_needed()) {
     return &cleanup_op;

@@ -629,13 +629,12 @@
     { MutexLockerEx mu(VMOperationRequest_lock,
                        Mutex::_no_safepoint_check_flag);
       VMOperationRequest_lock->notify_all();
     }
 
-    //
-    // We want to make sure that we get to a safepoint regularly.
-    //
+    // We want to make sure that we get to a safepoint regularly
+    // even when executing VMops that don't require safepoints.
     if ((_cur_vm_operation = VMThread::no_op_safepoint()) != NULL) {
       HandleMark hm(VMThread::vm_thread());
       SafepointSynchronize::begin();
       SafepointSynchronize::end();
       _cur_vm_operation = NULL;
< prev index next >