private static <V> void insertKeyValueNoLock(long[] keys, V[] values, long key, V value) { int bucket = (int) hash(key); while (true) { bucket = signSafeMod(bucket, keys.length); V storedValue = values[bucket]; if (storedValue == EmptyValue) { // The bucket is empty, so we can use it keys[bucket] = key; values[bucket] = value; return; } ++bucket; } } }
while (true) { int capacity = this.capacity; bucket = signSafeMod(bucket, capacity); V nextValueInArray = values[signSafeMod(bucket + 1, capacity)]; if (nextValueInArray == EmptyValue) { values[bucket] = (V) EmptyValue;
while (true) { int capacity = this.capacity; bucket = signSafeMod(bucket, capacity);
bucket = signSafeMod(bucket, capacity);
private static <V> void insertKeyValueNoLock(long[] keys, V[] values, long key, V value) { int bucket = (int) hash(key); while (true) { bucket = signSafeMod(bucket, keys.length); V storedValue = values[bucket]; if (storedValue == EmptyValue) { // The bucket is empty, so we can use it keys[bucket] = key; values[bucket] = value; return; } ++bucket; } } }
while (true) { int capacity = this.capacity; bucket = signSafeMod(bucket, capacity); V nextValueInArray = values[signSafeMod(bucket + 1, capacity)]; if (nextValueInArray == EmptyValue) { values[bucket] = (V) EmptyValue;
while (true) { int capacity = this.capacity; bucket = signSafeMod(bucket, capacity);
bucket = signSafeMod(bucket, capacity);