675
676 void ShenandoahHeapRegion::set_state(RegionState to) {
677 EventShenandoahHeapRegionStateChange evt;
678 if (evt.should_commit()){
679 evt.set_index((unsigned)region_number());
680 evt.set_start((uintptr_t)bottom());
681 evt.set_used(used());
682 evt.set_from(_state);
683 evt.set_to(to);
684 evt.commit();
685 }
686 _state = to;
687 }
688
689 void ShenandoahHeapRegion::record_pin() {
690 Atomic::add(&_critical_pins, (size_t)1);
691 }
692
693 void ShenandoahHeapRegion::record_unpin() {
694 assert(pin_count() > 0, "Region " SIZE_FORMAT " should have non-zero pins", region_number());
695 Atomic::sub((size_t)1, &_critical_pins);
696 }
697
698 size_t ShenandoahHeapRegion::pin_count() const {
699 return Atomic::load(&_critical_pins);
700 }
|
675
676 void ShenandoahHeapRegion::set_state(RegionState to) {
677 EventShenandoahHeapRegionStateChange evt;
678 if (evt.should_commit()){
679 evt.set_index((unsigned)region_number());
680 evt.set_start((uintptr_t)bottom());
681 evt.set_used(used());
682 evt.set_from(_state);
683 evt.set_to(to);
684 evt.commit();
685 }
686 _state = to;
687 }
688
689 void ShenandoahHeapRegion::record_pin() {
690 Atomic::add(&_critical_pins, (size_t)1);
691 }
692
693 void ShenandoahHeapRegion::record_unpin() {
694 assert(pin_count() > 0, "Region " SIZE_FORMAT " should have non-zero pins", region_number());
695 Atomic::sub(&_critical_pins, (size_t)1);
696 }
697
698 size_t ShenandoahHeapRegion::pin_count() const {
699 return Atomic::load(&_critical_pins);
700 }
|