< prev index next >
src/hotspot/share/gc/z/zDriver.cpp
Print this page
*** 85,96 ****
// Setup GC id and active marker
GCIdMark gc_id_mark(_gc_id);
IsGCActiveMark gc_active_mark;
! // Verify roots
! ZVerify::roots_strong();
// Execute operation
_success = do_operation();
// Update statistics
--- 85,96 ----
// Setup GC id and active marker
GCIdMark gc_id_mark(_gc_id);
IsGCActiveMark gc_active_mark;
! // Verify before operation
! ZVerify::before_zoperation();
// Execute operation
_success = do_operation();
// Update statistics
*** 209,218 ****
--- 209,229 ----
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,319 ****
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;
VMThread::execute(&op);
}
}
void ZDriver::concurrent_select_relocation_set() {
--- 317,329 ----
void ZDriver::pause_verify() {
if (VerifyBeforeGC || VerifyDuringGC || VerifyAfterGC) {
// Full verification
VM_Verify op;
VMThread::execute(&op);
} else if (ZVerifyRoots || ZVerifyObjects) {
// Limited verification
! VM_ZVerify op;
VMThread::execute(&op);
}
}
void ZDriver::concurrent_select_relocation_set() {
< prev index next >