< prev index next >
src/hotspot/share/gc/z/zBarrierSet.inline.hpp
Concurrent class unloading
//
template <DecoratorSet decorators, typename BarrierSetT>
template <typename T>
inline oop ZBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_load_not_in_heap(T* addr) {
const oop o = Raw::oop_load_not_in_heap(addr);
!
! if (HasDecorator<decorators, ON_PHANTOM_OOP_REF>::value) {
! return load_barrier_on_oop_field_preloaded(addr, o);
! }
!
! verify_decorators_present<ON_STRONG_OOP_REF>();
! verify_decorators_absent<AS_NO_KEEPALIVE>();
!
! return o;
}
template <DecoratorSet decorators, typename BarrierSetT>
template <typename T>
inline oop ZBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
//
template <DecoratorSet decorators, typename BarrierSetT>
template <typename T>
inline oop ZBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_load_not_in_heap(T* addr) {
const oop o = Raw::oop_load_not_in_heap(addr);
! return load_barrier_on_oop_field_preloaded(addr, o);
}
template <DecoratorSet decorators, typename BarrierSetT>
template <typename T>
inline oop ZBarrierSet::AccessBarrier<decorators, BarrierSetT>::oop_atomic_cmpxchg_not_in_heap(oop new_value, T* addr, oop compare_value) {
< prev index next >