351 |
|
* Encodings for special uses of Node hash fields. See above for |
352 |
|
* explanation. |
353 |
|
*/ |
354 |
< |
static final int MOVED = 0x80000000; // hash field for fowarding nodes |
354 |
> |
static final int MOVED = 0x80000000; // hash field for forwarding nodes |
355 |
|
static final int LOCKED = 0x40000000; // set/tested only as a bit |
356 |
|
static final int WAITING = 0xc0000000; // both bits set/tested together |
357 |
|
static final int HASH_BITS = 0x3fffffff; // usable bits of normal node hash |
1291 |
|
* |
1292 |
|
* At each step, the iterator snapshots the key ("nextKey") and |
1293 |
|
* value ("nextVal") of a valid node (i.e., one that, at point of |
1294 |
< |
* snapshot, has a nonnull user value). Because val fields can |
1294 |
> |
* snapshot, has a non-null user value). Because val fields can |
1295 |
|
* change (including to null, indicating deletion), field nextVal |
1296 |
|
* might not be accurate at point of use, but still maintains the |
1297 |
|
* weak consistency property of holding a value that was once |
2237 |
|
} |
2238 |
|
|
2239 |
|
static final class Values<K,V> extends MapView<K,V> |
2240 |
< |
implements Collection<V> { |
2240 |
> |
implements Collection<V> { |
2241 |
|
Values(ConcurrentHashMapV8<K, V> map) { super(map); } |
2242 |
|
public final boolean contains(Object o) { return map.containsValue(o); } |
2243 |
|
|