< prev index next >

src/hotspot/share/gc/z/zDriver.cpp

Print this page

        

@@ -85,12 +85,12 @@
 
     // Setup GC id and active marker
     GCIdMark gc_id_mark(_gc_id);
     IsGCActiveMark gc_active_mark;
 
-    // Verify roots
-    ZVerify::roots_strong();
+    // Verify before operation
+    ZVerify::before_zoperation();
 
     // Execute operation
     _success = do_operation();
 
     // Update statistics

@@ -209,10 +209,21 @@
     ZHeap::heap()->relocate_start();
     return true;
   }
 };
 
+class VM_ZVerify : public VM_Operation {
+public:
+  virtual VMOp_Type type() const {
+    return VMOp_ZVerify;
+  }
+
+  virtual void doit() {
+    ZVerify::after_weak_processing();
+  }
+};
+
 ZDriver::ZDriver() :
     _gc_cycle_port(),
     _gc_locker_port() {
   set_name("ZDriver");
   create_and_start();

@@ -306,14 +317,13 @@
 void ZDriver::pause_verify() {
   if (VerifyBeforeGC || VerifyDuringGC || VerifyAfterGC) {
     // Full verification
     VM_Verify op;
     VMThread::execute(&op);
-
   } else if (ZVerifyRoots || ZVerifyObjects) {
     // Limited verification
-    VM_ZVerifyOperation op;
+    VM_ZVerify op;
     VMThread::execute(&op);
   }
 }
 
 void ZDriver::concurrent_select_relocation_set() {
< prev index next >