template <DecoratorSet decorators, typename T> inlinevoid G1BarrierSet::write_ref_field_post(T* field, oop new_val) { volatile CardValue* byte = _card_table->byte_for(field); if (*byte != G1CardTable::g1_young_card_val()) { // Take a slow path for cards in old
write_ref_field_post_slow(byte);
}
}
inlinevoid G1BarrierSet::enqueue_preloaded_if_weak(DecoratorSet decorators, oop value) {
assert((decorators & ON_UNKNOWN_OOP_REF) == 0, "Reference strength must be known"); // Loading from a weak or phantom reference needs enqueueing, as // the object may not have been reachable (part of the snapshot) // when marking started. constbool on_strong_oop_ref = (decorators & ON_STRONG_OOP_REF) != 0; constbool peek = (decorators & AS_NO_KEEPALIVE) != 0; constbool needs_enqueue = (!peek && !on_strong_oop_ref);
if (needs_enqueue && value != NULL) {
enqueue_preloaded(value);
}
}
template <DecoratorSet decorators, typename BarrierSetT> template <typename T> inlinevoid G1BarrierSet::AccessBarrier<decorators, BarrierSetT>::
oop_store_not_in_heap(T* addr, oop new_value) { // Apply SATB barriers for all non-heap references, to allow // concurrent scanning of such references.
G1BarrierSet *bs = barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set());
bs->write_ref_field_pre<decorators>(addr);
Raw::oop_store(addr, new_value);
}
#endif// SHARE_GC_G1_G1BARRIERSET_INLINE_HPP
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.