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