Improved unmonitoring for nested objects i.e. objects contains objects which should also be unmonitored.

This commit is contained in:
Peter Lawrey
2020-10-19 16:03:34 +01:00
parent d32244c09a
commit ed2becd838
2 changed files with 4 additions and 5 deletions
@@ -22,7 +22,7 @@ import net.openhft.chronicle.algo.bytes.Access;
import net.openhft.chronicle.bytes.Bytes;
import net.openhft.chronicle.bytes.PointerBytesStore;
import net.openhft.chronicle.bytes.VanillaBytes;
import net.openhft.chronicle.core.io.ReferenceCounted;
import net.openhft.chronicle.core.io.IOTools;
import net.openhft.chronicle.hash.Data;
import net.openhft.chronicle.hash.SegmentLock;
import net.openhft.chronicle.hash.impl.*;
@@ -43,7 +43,6 @@ import java.util.Objects;
import static net.openhft.chronicle.algo.MemoryUnit.BITS;
import static net.openhft.chronicle.algo.MemoryUnit.LONGS;
import static net.openhft.chronicle.algo.bitset.BitSetFrame.NOT_FOUND;
import static net.openhft.chronicle.core.io.AbstractReferenceCounted.unmonitor;
import static net.openhft.chronicle.hash.impl.LocalLockState.UNLOCKED;
import static net.openhft.chronicle.hash.impl.VanillaChronicleHash.TIER_COUNTERS_AREA_SIZE;
@@ -116,7 +115,7 @@ public abstract class SegmentStages implements SegmentLock, LocksInterface {
@NotNull
private static VanillaBytes unmonitoredVanillaBytes(PointerBytesStore segmentBS) {
VanillaBytes bytes = new VanillaBytes(segmentBS);
unmonitor(bytes);
IOTools.unmonitor(bytes);
return bytes;
}
@@ -22,7 +22,7 @@ import net.openhft.chronicle.bytes.Bytes;
import net.openhft.chronicle.bytes.BytesStore;
import net.openhft.chronicle.bytes.PointerBytesStore;
import net.openhft.chronicle.core.Jvm;
import net.openhft.chronicle.core.io.AbstractReferenceCounted;
import net.openhft.chronicle.core.io.IOTools;
import net.openhft.chronicle.hash.ChronicleHashClosedException;
import net.openhft.chronicle.hash.ChronicleHashCorruption;
import net.openhft.chronicle.hash.Data;
@@ -419,7 +419,7 @@ public class VanillaChronicleMap<K, V, R>
ChainingInterface newQueryContext() {
CompiledMapQueryContext<Object, Object, Object> context = new CompiledMapQueryContext<>(this);
AbstractReferenceCounted.unmonitor(context.segmentBytes);
IOTools.unmonitor(context.segmentBytes);
return context;
}