HCOLL-343 HCOLL-227 Remove old entries from ReplicatedChronicleMap

This commit is contained in:
leventov
2015-08-23 00:01:44 +03:00
parent a3a45e1681
commit 904ecca036
40 changed files with 945 additions and 90 deletions
@@ -114,6 +114,8 @@ public abstract class VanillaChronicleHash<K, KI, MKI extends MetaBytesInterop<K
public transient CompactOffHeapLinearHashTable hashLookup;
protected transient boolean closed = false;
public VanillaChronicleHash(
ChronicleMapBuilder<K, ?> builder, boolean replicated) {
// Version
@@ -262,13 +264,21 @@ public abstract class VanillaChronicleHash<K, KI, MKI extends MetaBytesInterop<K
}
@Override
public void close() {
public synchronized void close() {
if (closed)
return;
if (ms == null)
return;
bytes.release();
bytes = null;
ms.free();
ms = null;
closed = true;
}
@Override
public boolean isOpen() {
return !closed;
}
public final void checkKey(Object key) {
@@ -324,4 +334,9 @@ public abstract class VanillaChronicleHash<K, KI, MKI extends MetaBytesInterop<K
long size = longSize();
return size > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) size;
}
@Override
public int segments() {
return actualSegments;
}
}