diff --git a/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java b/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java index 24fcf79d4..cc437d1d7 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/HashEntryStages.java @@ -62,12 +62,16 @@ public abstract class HashEntryStages implements HashEntry, ChecksumEntry keySizeOffset = s.entrySpaceOffset + pos * hh.h().chunkSize; } + public abstract void closeEntryOffset(); + public long keySize = -1; public void initKeySize(long keySize) { this.keySize = keySize; } + public abstract void closeKeySize(); + public long keyOffset = -1; public void initKeyOffset(long keyOffset) { @@ -91,6 +95,13 @@ public abstract class HashEntryStages implements HashEntry, ChecksumEntry initKeyOffset(keyOffset); } + public void closeEntry() { + closePos(); + closeEntryOffset(); + closeKeySize(); + closeKeyOffset(); + } + public void writeNewEntry(long pos, Data key) { initPos(pos); initKeySize(key.size()); diff --git a/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/ReadLock.java b/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/ReadLock.java index 3f46fbc36..ddbd4e67a 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/ReadLock.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/stage/entry/ReadLock.java @@ -108,8 +108,7 @@ public class ReadLock implements InterProcessLock { if (s.localLockState != UNLOCKED) { // TODO what should close here? hlp.closeHashLookupPos(); - entry.closePos(); - entry.closeKeyOffset(); + entry.closeEntry(); } s.readUnlockAndDecrementCount(); s.setLocalLockState(UNLOCKED);