Package org.jctools.maps
Class NonBlockingHashMapLong.CHM
- java.lang.Object
-
- org.jctools.maps.NonBlockingHashMapLong.CHM
-
- All Implemented Interfaces:
java.io.Serializable
- Enclosing class:
- NonBlockingHashMapLong<TypeV>
private static final class NonBlockingHashMapLong.CHM extends java.lang.Object implements java.io.Serializable
-
-
Field Summary
Fields Modifier and Type Field Description (package private) long
_copyDone
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMapLong.CHM>
_copyDoneUpdater
(package private) long
_copyIdx
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMapLong.CHM>
_copyIdxUpdater
(package private) long[]
_keys
(package private) NonBlockingHashMapLong
_nbhml
(package private) NonBlockingHashMapLong.CHM
_newchm
private static java.util.concurrent.atomic.AtomicReferenceFieldUpdater<NonBlockingHashMapLong.CHM,NonBlockingHashMapLong.CHM>
_newchmUpdater
(package private) long
_resizers
private static java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMapLong.CHM>
_resizerUpdater
private ConcurrentAutoTable
_size
private ConcurrentAutoTable
_slots
(package private) java.lang.Object[]
_vals
-
Constructor Summary
Constructors Constructor Description CHM(NonBlockingHashMapLong nbhml, ConcurrentAutoTable size, int logsize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
CAS_key(int idx, long old, long key)
(package private) boolean
CAS_newchm(NonBlockingHashMapLong.CHM newchm)
private boolean
CAS_val(int idx, java.lang.Object old, java.lang.Object val)
private void
copy_check_and_promote(int workdone)
private boolean
copy_slot(int idx)
private NonBlockingHashMapLong.CHM
copy_slot_and_check(int idx, java.lang.Object should_help)
private java.lang.Object
get_impl(long key)
private void
help_copy_impl(boolean copy_all)
private void
print()
private void
print2()
private java.lang.Object
putIfMatch(long key, java.lang.Object putval, java.lang.Object expVal)
private NonBlockingHashMapLong.CHM
resize()
int
size()
int
slots()
private boolean
tableFull(int reprobe_cnt, int len)
-
-
-
Field Detail
-
_nbhml
final NonBlockingHashMapLong _nbhml
-
_size
private final ConcurrentAutoTable _size
-
_slots
private final ConcurrentAutoTable _slots
-
_newchm
volatile NonBlockingHashMapLong.CHM _newchm
-
_newchmUpdater
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater<NonBlockingHashMapLong.CHM,NonBlockingHashMapLong.CHM> _newchmUpdater
-
_resizers
volatile long _resizers
-
_resizerUpdater
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMapLong.CHM> _resizerUpdater
-
_keys
final long[] _keys
-
_vals
final java.lang.Object[] _vals
-
_copyIdx
volatile long _copyIdx
-
_copyIdxUpdater
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMapLong.CHM> _copyIdxUpdater
-
_copyDone
volatile long _copyDone
-
_copyDoneUpdater
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<NonBlockingHashMapLong.CHM> _copyDoneUpdater
-
-
Constructor Detail
-
CHM
CHM(NonBlockingHashMapLong nbhml, ConcurrentAutoTable size, int logsize)
-
-
Method Detail
-
size
public int size()
-
slots
public int slots()
-
CAS_newchm
boolean CAS_newchm(NonBlockingHashMapLong.CHM newchm)
-
CAS_key
private boolean CAS_key(int idx, long old, long key)
-
CAS_val
private boolean CAS_val(int idx, java.lang.Object old, java.lang.Object val)
-
print
private void print()
-
print2
private void print2()
-
get_impl
private java.lang.Object get_impl(long key)
-
putIfMatch
private java.lang.Object putIfMatch(long key, java.lang.Object putval, java.lang.Object expVal)
-
tableFull
private final boolean tableFull(int reprobe_cnt, int len)
-
resize
private final NonBlockingHashMapLong.CHM resize()
-
help_copy_impl
private final void help_copy_impl(boolean copy_all)
-
copy_slot_and_check
private NonBlockingHashMapLong.CHM copy_slot_and_check(int idx, java.lang.Object should_help)
-
copy_check_and_promote
private final void copy_check_and_promote(int workdone)
-
copy_slot
private boolean copy_slot(int idx)
-
-