diff --git a/src/main/java/net/openhft/chronicle/hash/impl/stage/query/HashQuery.java b/src/main/java/net/openhft/chronicle/hash/impl/stage/query/HashQuery.java index 0bda55f0e..85db31da1 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/stage/query/HashQuery.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/stage/query/HashQuery.java @@ -129,15 +129,12 @@ public abstract class HashQuery implements SetEntry { @Override public void doRemove() { checkOnEachPublicOperation.checkOnEachPublicOperation(); - s.innerUpdateLock.lock(); + s.innerWriteLock.lock(); if (ks.searchStatePresent()) { entry.innerRemoveEntryExceptHashLookupUpdate(); + hashLookupSearch.remove(); ks.setSearchState(ABSENT); initPresenceOfEntry(EntryPresence.ABSENT); - - // write lock scope is reduced as much as possible - s.innerWriteLock.lock(); - hashLookupSearch.remove(); } else { throw new IllegalStateException("Entry is absent when doRemove() is called"); }