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


 402 }
 403 
 404 HeapWord* ShenandoahHeapRegion::top_prev_mark_bitmap() {
 405   return _top_prev_mark_bitmap;
 406 }
 407 
 408 bool ShenandoahHeapRegion::allocated_after_prev_mark_start(HeapWord* addr) const {
 409   return addr >= _top_at_prev_mark_start;
 410 }
 411 
 412 void ShenandoahHeapRegion::swap_top_at_mark_start() {
 413   HeapWord* tmp = _top_at_prev_mark_start;
 414   _top_at_prev_mark_start = _top_at_mark_start;
 415   _top_at_mark_start = tmp;
 416   ShenandoahHeap::heap()->set_top_at_mark_start(bottom(), tmp);
 417 }
 418 
 419 void ShenandoahHeapRegion::set_top_prev_mark_bitmap(HeapWord* top) {
 420   _top_prev_mark_bitmap = top;
 421 }

















 402 }
 403 
 404 HeapWord* ShenandoahHeapRegion::top_prev_mark_bitmap() {
 405   return _top_prev_mark_bitmap;
 406 }
 407 
 408 bool ShenandoahHeapRegion::allocated_after_prev_mark_start(HeapWord* addr) const {
 409   return addr >= _top_at_prev_mark_start;
 410 }
 411 
 412 void ShenandoahHeapRegion::swap_top_at_mark_start() {
 413   HeapWord* tmp = _top_at_prev_mark_start;
 414   _top_at_prev_mark_start = _top_at_mark_start;
 415   _top_at_mark_start = tmp;
 416   ShenandoahHeap::heap()->set_top_at_mark_start(bottom(), tmp);
 417 }
 418 
 419 void ShenandoahHeapRegion::set_top_prev_mark_bitmap(HeapWord* top) {
 420   _top_prev_mark_bitmap = top;
 421 }
 422 
 423 void ShenandoahHeapRegion::enter_critical() {
 424   assert(_critical_pins >= 0, "sanity");
 425   Atomic::inc(&_critical_pins);
 426 }
 427 
 428 void ShenandoahHeapRegion::exit_critical() {
 429   Atomic::dec(&_critical_pins);
 430   assert(_critical_pins >= 0, "sanity");
 431 }
 432 
 433 bool ShenandoahHeapRegion::is_pinned() {
 434   assert(_critical_pins >= 0, "sanity");
 435   return _critical_pins > 0;
 436 }
< prev index next >