Skip to content

Commit 6207b46

Browse files
committed
PrimitiveConcurrentMap ×numBuckets → locks.length
1 parent a0ebed6 commit 6207b46

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/main/java/com/trivago/fastutilconcurrentwrapper/PrimitiveConcurrentMap.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,12 @@
1313
@see org.jctools.maps.NonBlockingHashMapLong
1414
*/
1515
public abstract class PrimitiveConcurrentMap<K,V> implements PrimitiveKeyMap {
16-
private final int numBuckets;
1716
private final CloseableReadWriteLock.Padded[] locks;
1817

1918
@SuppressWarnings({"resource", "ConstantValue"})
2019
protected PrimitiveConcurrentMap (@Positive int numBuckets) {
2120
if (numBuckets < 1 || numBuckets > 100_000_000)
2221
throw new IllegalArgumentException("numBuckets must be between 1 and 100_000_000, but: "+ numBuckets);
23-
this.numBuckets = numBuckets;
2422
this.locks = new CloseableReadWriteLock.Padded[numBuckets];
2523
for (int i = 0; i < numBuckets; i++)
2624
locks[i] = new CloseableReadWriteLock.Padded();
@@ -45,7 +43,7 @@ protected ReentrantReadWriteLock.WriteLock writeLock (int lockIndex) {
4543
@Override
4644
public int size () {
4745
int sum = 0;
48-
for (int i = 0; i < numBuckets; i++){
46+
for (int i = 0; i < locks.length; i++){
4947
try (var __ = readAt(i)){
5048
sum += mapAt(i).size();
5149
}
@@ -55,7 +53,7 @@ public int size () {
5553

5654
@Override
5755
public boolean isEmpty () {
58-
for (int i = 0; i < numBuckets; i++) {
56+
for (int i = 0; i < locks.length; i++) {
5957
try (var __ = readAt(i)){
6058
boolean nonEmpty = mapAt(i).size() > 0;
6159
if (nonEmpty)
@@ -67,22 +65,22 @@ public boolean isEmpty () {
6765

6866
@Override
6967
public void clear () {
70-
for (int i = 0; i < numBuckets; i++){
68+
for (int i = 0; i < locks.length; i++){
7169
try (var __ = writeAt(i)){
7270
mapAt(i).clear();
7371
}
7472
}
7573
}
7674

7775
protected int getBucket (long key) {
78-
return PrimitiveKeyMap.bucket(key, numBuckets);
76+
return PrimitiveKeyMap.bucket(key, locks.length);
7977
}
8078

8179
protected int getBucket (int key) {
82-
return PrimitiveKeyMap.bucket(key, numBuckets);// Integer.hashCode(key) == key
80+
return PrimitiveKeyMap.bucket(key, locks.length);// Integer.hashCode(key) == key
8381
}
8482

8583
protected int getBucket (Object key) {
86-
return PrimitiveKeyMap.bucket(key, numBuckets);
84+
return PrimitiveKeyMap.bucket(key, locks.length);
8785
}
8886
}

0 commit comments

Comments
 (0)