< 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 >