688 inline oop evac_update_with_forwarded(T* p);
689
690 template <class T>
691 inline oop maybe_update_with_forwarded(T* p);
692
693 template <class T>
694 inline oop maybe_update_with_forwarded_not_null(T* p, oop obj);
695
696 template <class T>
697 inline oop update_with_forwarded_not_null(T* p, oop obj);
698
699 inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c);
700 inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c);
701
702 void trash_humongous_region_at(ShenandoahHeapRegion *r);
703
704 void deduplicate_string(oop str);
705
706 void stop_concurrent_marking();
707
708 void roots_iterate(OopClosure* cl);
709
710 private:
711 void trash_cset_regions();
712 void update_heap_references(bool concurrent);
713
714 // ---------- Testing helpers functions
715 //
716 private:
717 ShenandoahSharedFlag _inject_alloc_failure;
718
719 void try_inject_alloc_failure();
720 bool should_inject_alloc_failure();
721 };
722
723 #endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
|
688 inline oop evac_update_with_forwarded(T* p);
689
690 template <class T>
691 inline oop maybe_update_with_forwarded(T* p);
692
693 template <class T>
694 inline oop maybe_update_with_forwarded_not_null(T* p, oop obj);
695
696 template <class T>
697 inline oop update_with_forwarded_not_null(T* p, oop obj);
698
699 inline oop atomic_compare_exchange_oop(oop n, narrowOop* addr, oop c);
700 inline oop atomic_compare_exchange_oop(oop n, oop* addr, oop c);
701
702 void trash_humongous_region_at(ShenandoahHeapRegion *r);
703
704 void deduplicate_string(oop str);
705
706 void stop_concurrent_marking();
707
708 private:
709 void trash_cset_regions();
710 void update_heap_references(bool concurrent);
711
712 // ---------- Testing helpers functions
713 //
714 private:
715 ShenandoahSharedFlag _inject_alloc_failure;
716
717 void try_inject_alloc_failure();
718 bool should_inject_alloc_failure();
719 };
720
721 #endif // SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAP_HPP
|