Package org.jctools.maps
Class NonBlockingIdentityHashMap.CHM<TypeK,TypeV>
- java.lang.Object
-
- org.jctools.maps.NonBlockingIdentityHashMap.CHM<TypeK,TypeV>
-
- Enclosing class:
- NonBlockingIdentityHashMap<TypeK,TypeV>
private static final class NonBlockingIdentityHashMap.CHM<TypeK,TypeV> extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description (package private) long
_copyDone
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingIdentityHashMap.CHM>
_copyDoneUpdater
(package private) long
_copyIdx
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingIdentityHashMap.CHM>
_copyIdxUpdater
(package private) java.lang.Object[]
_newkvs
private java.util.concurrent.atomic.AtomicReferenceFieldUpdater<NonBlockingIdentityHashMap.CHM,java.lang.Object[]>
_newkvsUpdater
(package private) long
_resizers
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingIdentityHashMap.CHM>
_resizerUpdater
private ConcurrentAutoTable
_size
private ConcurrentAutoTable
_slots
-
Constructor Summary
Constructors Constructor Description CHM(ConcurrentAutoTable size)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) boolean
CAS_newkvs(java.lang.Object[] newkvs)
private void
copy_check_and_promote(NonBlockingIdentityHashMap topmap, java.lang.Object[] oldkvs, int workdone)
private boolean
copy_slot(NonBlockingIdentityHashMap topmap, int idx, java.lang.Object[] oldkvs, java.lang.Object[] newkvs)
private java.lang.Object[]
copy_slot_and_check(NonBlockingIdentityHashMap topmap, java.lang.Object[] oldkvs, int idx, java.lang.Object should_help)
private void
help_copy_impl(NonBlockingIdentityHashMap topmap, java.lang.Object[] oldkvs, boolean copy_all)
private java.lang.Object[]
resize(NonBlockingIdentityHashMap topmap, java.lang.Object[] kvs)
int
size()
int
slots()
private boolean
tableFull(int reprobe_cnt, int len)
-
-
-
Field Detail
-
_size
private final ConcurrentAutoTable _size
-
_slots
private final ConcurrentAutoTable _slots
-
_newkvs
volatile java.lang.Object[] _newkvs
-
_newkvsUpdater
private final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<NonBlockingIdentityHashMap.CHM,java.lang.Object[]> _newkvsUpdater
-
_resizers
volatile long _resizers
-
_resizerUpdater
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingIdentityHashMap.CHM> _resizerUpdater
-
_copyIdx
volatile long _copyIdx
-
_copyIdxUpdater
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingIdentityHashMap.CHM> _copyIdxUpdater
-
_copyDone
volatile long _copyDone
-
_copyDoneUpdater
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingIdentityHashMap.CHM> _copyDoneUpdater
-
-
Constructor Detail
-
CHM
CHM(ConcurrentAutoTable size)
-
-
Method Detail
-
size
public int size()
-
slots
public int slots()
-
CAS_newkvs
boolean CAS_newkvs(java.lang.Object[] newkvs)
-
tableFull
private final boolean tableFull(int reprobe_cnt, int len)
-
resize
private final java.lang.Object[] resize(NonBlockingIdentityHashMap topmap, java.lang.Object[] kvs)
-
help_copy_impl
private final void help_copy_impl(NonBlockingIdentityHashMap topmap, java.lang.Object[] oldkvs, boolean copy_all)
-
copy_slot_and_check
private final java.lang.Object[] copy_slot_and_check(NonBlockingIdentityHashMap topmap, java.lang.Object[] oldkvs, int idx, java.lang.Object should_help)
-
copy_check_and_promote
private final void copy_check_and_promote(NonBlockingIdentityHashMap topmap, java.lang.Object[] oldkvs, int workdone)
-
copy_slot
private boolean copy_slot(NonBlockingIdentityHashMap topmap, int idx, java.lang.Object[] oldkvs, java.lang.Object[] newkvs)
-
-