< prev index next >

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

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

@@ -417,5 +417,20 @@
 }
 
 void ShenandoahHeapRegion::set_top_prev_mark_bitmap(HeapWord* top) {
   _top_prev_mark_bitmap = top;
 }
+
+void ShenandoahHeapRegion::enter_critical() {
+  assert(_critical_pins >= 0, "sanity");
+  Atomic::inc(&_critical_pins);
+}
+
+void ShenandoahHeapRegion::exit_critical() {
+  Atomic::dec(&_critical_pins);
+  assert(_critical_pins >= 0, "sanity");
+}
+
+bool ShenandoahHeapRegion::is_pinned() {
+  assert(_critical_pins >= 0, "sanity");
+  return _critical_pins > 0;
+}
< prev index next >