< prev index next >

src/share/vm/gc/shenandoah/shenandoahMarkCompact.cpp

Print this page
rev 12117 : Pin regions that contain JNI critical regions, instead of bail-and-retry protocol.

@@ -355,16 +355,17 @@
   ShenandoahHeapRegionSet** _copy_queues;
   ShenandoahHeapRegionSet* _from_regions;
 
   ShenandoahHeapRegion* next_from_region(ShenandoahHeapRegionSet* copy_queue) {
     ShenandoahHeapRegion* from_region = _from_regions->claim_next();
-    while (from_region != NULL && from_region->is_humongous()) {
+    while (from_region != NULL && (from_region->is_humongous() || from_region->is_pinned())) {
       from_region = _from_regions->claim_next();
     }
     if (from_region != NULL) {
       assert(copy_queue != NULL, "sanity");
       assert(! from_region->is_humongous(), "must not get humongous regions here");
+      assert(! from_region->is_pinned(), "no pinned region in mark-compact");
       copy_queue->add_region(from_region);
     }
     return from_region;
   }
 
< prev index next >