private static final class NonBlockingHashMap.CHM<TypeK,TypeV>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
(package private) long |
_copyDone |
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMap.CHM> |
_copyDoneUpdater |
(package private) long |
_copyIdx |
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMap.CHM> |
_copyIdxUpdater |
(package private) java.lang.Object[] |
_newkvs |
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<NonBlockingHashMap.CHM,java.lang.Object[]> |
_newkvsUpdater |
(package private) long |
_resizers |
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMap.CHM> |
_resizerUpdater |
private ConcurrentAutoTable |
_size |
private ConcurrentAutoTable |
_slots |
Constructor and Description |
---|
CHM(ConcurrentAutoTable size) |
Modifier and Type | Method and Description |
---|---|
(package private) boolean |
CAS_newkvs(java.lang.Object[] newkvs) |
private void |
copy_check_and_promote(NonBlockingHashMap topmap,
java.lang.Object[] oldkvs,
int workdone) |
private java.lang.Object[] |
copy_slot_and_check(NonBlockingHashMap topmap,
java.lang.Object[] oldkvs,
int idx,
java.lang.Object should_help) |
private boolean |
copy_slot(NonBlockingHashMap topmap,
int idx,
java.lang.Object[] oldkvs,
java.lang.Object[] newkvs) |
private void |
help_copy_impl(NonBlockingHashMap topmap,
java.lang.Object[] oldkvs,
boolean copy_all) |
private java.lang.Object[] |
resize(NonBlockingHashMap topmap,
java.lang.Object[] kvs) |
int |
size() |
int |
slots() |
private boolean |
tableFull(int reprobe_cnt,
int len) |
private final ConcurrentAutoTable _size
private final ConcurrentAutoTable _slots
volatile java.lang.Object[] _newkvs
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<NonBlockingHashMap.CHM,java.lang.Object[]> _newkvsUpdater
volatile long _resizers
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMap.CHM> _resizerUpdater
volatile long _copyIdx
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMap.CHM> _copyIdxUpdater
volatile long _copyDone
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMap.CHM> _copyDoneUpdater
CHM(ConcurrentAutoTable size)
public int size()
public int slots()
boolean CAS_newkvs(java.lang.Object[] newkvs)
private final boolean tableFull(int reprobe_cnt, int len)
private final java.lang.Object[] resize(NonBlockingHashMap topmap, java.lang.Object[] kvs)
private final void help_copy_impl(NonBlockingHashMap topmap, java.lang.Object[] oldkvs, boolean copy_all)
private final java.lang.Object[] copy_slot_and_check(NonBlockingHashMap topmap, java.lang.Object[] oldkvs, int idx, java.lang.Object should_help)
private final void copy_check_and_promote(NonBlockingHashMap topmap, java.lang.Object[] oldkvs, int workdone)
private boolean copy_slot(NonBlockingHashMap topmap, int idx, java.lang.Object[] oldkvs, java.lang.Object[] newkvs)