Class ConcurrentReferenceHashMap.HashEntry<K,V>
java.lang.Object
org.jboss.logmanager.ConcurrentReferenceHashMap.HashEntry<K,V>
- Enclosing class:
ConcurrentReferenceHashMap<K,V>
ConcurrentReferenceHashMap list entry. Note that this is never exported
out as a user-visible Map.Entry.
Because the value field is volatile, not final, it is legal wrt
the Java Memory Model for an unsynchronized reader to see null
instead of initial value when read via a data race. Although a
reordering leading to this is not likely to ever actually
occur, the Segment.readValueUnderLock method is used as a
backup in case a null (pre-initialized) value is ever seen in
an unsynchronized access method.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionHashEntry(K key, int hash, ConcurrentReferenceHashMap.HashEntry<K, V> next, V value, ConcurrentReferenceHashMap.ReferenceType keyType, ConcurrentReferenceHashMap.ReferenceType valueType, ReferenceQueue<Object> refQueue) -
Method Summary
Modifier and TypeMethodDescription(package private) final VdereferenceValue(Object value) (package private) final Kkey()(package private) static final <K,V> ConcurrentReferenceHashMap.HashEntry<K, V>[] newArray(int i) (package private) final ObjectnewKeyReference(K key, ConcurrentReferenceHashMap.ReferenceType keyType, ReferenceQueue<Object> refQueue) (package private) final ObjectnewValueReference(V value, ConcurrentReferenceHashMap.ReferenceType valueType, ReferenceQueue<Object> refQueue) (package private) final voidsetValue(V value, ConcurrentReferenceHashMap.ReferenceType valueType, ReferenceQueue<Object> refQueue) (package private) final Vvalue()
-
Field Details
-
keyRef
-
hash
final int hash -
valueRef
-
next
-
-
Constructor Details
-
HashEntry
HashEntry(K key, int hash, ConcurrentReferenceHashMap.HashEntry<K, V> next, V value, ConcurrentReferenceHashMap.ReferenceType keyType, ConcurrentReferenceHashMap.ReferenceType valueType, ReferenceQueue<Object> refQueue)
-
-
Method Details
-
newKeyReference
final Object newKeyReference(K key, ConcurrentReferenceHashMap.ReferenceType keyType, ReferenceQueue<Object> refQueue) -
newValueReference
final Object newValueReference(V value, ConcurrentReferenceHashMap.ReferenceType valueType, ReferenceQueue<Object> refQueue) -
key
-
value
-
dereferenceValue
-
setValue
final void setValue(V value, ConcurrentReferenceHashMap.ReferenceType valueType, ReferenceQueue<Object> refQueue) -
newArray
-