--- a/src/hotspot/share/gc/z/zHeap.cpp Mon Mar 18 11:50:40 2019 +0100
+++ b/src/hotspot/share/gc/z/zHeap.cpp Mon Mar 18 11:50:41 2019 +0100
@@ -403,6 +403,9 @@
}
void ZHeap::select_relocation_set() {
+ // Do not allow pages to be deleted
+ _page_allocator.enable_deferred_delete();
+
// Register relocatable pages with selector
ZRelocationSetSelector selector;
ZPageTableIterator pt_iter(&_page_table);
@@ -424,6 +427,9 @@
}
}
+ // Allow pages to be deleted
+ _page_allocator.disable_deferred_delete();
+
// Select pages to relocate
selector.select(&_relocation_set);
@@ -451,10 +457,6 @@
_relocation_set.reset();
}
-void ZHeap::destroy_detached_pages() {
- _page_allocator.destroy_detached_pages();
-}
-
void ZHeap::relocate_start() {
assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
@@ -521,11 +523,18 @@
print_on(st);
st->cr();
+ // Do not allow pages to be deleted
+ _page_allocator.enable_deferred_delete();
+
+ // Print all pages
ZPageTableIterator iter(&_page_table);
for (ZPage* page; iter.next(&page);) {
page->print_on(st);
}
+ // Allow pages to be deleted
+ _page_allocator.enable_deferred_delete();
+
st->cr();
}