From a7f884ec247ccd5a50cc8ce8f603eadb9cba42db Mon Sep 17 00:00:00 2001 From: Ivan Rakov Date: Thu, 17 Jun 2021 15:54:47 +0300 Subject: [PATCH] Enable exclusive locks on Windows environments by default, https://github.com/OpenHFT/Chronicle-Map/issues/292 --- .../openhft/chronicle/map/FileLockUtil.java | 2 +- .../chronicle/map/FileLockUtilTest.java | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/map/FileLockUtil.java b/src/main/java/net/openhft/chronicle/map/FileLockUtil.java index dfc834a94..2c0b8cc7e 100644 --- a/src/main/java/net/openhft/chronicle/map/FileLockUtil.java +++ b/src/main/java/net/openhft/chronicle/map/FileLockUtil.java @@ -21,7 +21,7 @@ public final class FileLockUtil { */ private static final String DISABLE_LOCKING = "chronicle.map.disable.locking"; private static final ConcurrentHashMap FILE_LOCKS = new ConcurrentHashMap<>(); - private static final boolean USE_EXCLUSIVE_LOCKING = !OS.isWindows() && !Jvm.getBoolean(DISABLE_LOCKING); + private static final boolean USE_EXCLUSIVE_LOCKING = !Jvm.getBoolean(DISABLE_LOCKING); private static final boolean USE_SHARED_LOCKING = !OS.isWindows() && !Jvm.getBoolean(DISABLE_LOCKING) && !"shared".equalsIgnoreCase(System.getProperty(DISABLE_LOCKING)); private static final AtomicBoolean LOCK_WARNING_PRINTED = new AtomicBoolean(); diff --git a/src/test/java/net/openhft/chronicle/map/FileLockUtilTest.java b/src/test/java/net/openhft/chronicle/map/FileLockUtilTest.java index befb64ce8..4820c46c5 100644 --- a/src/test/java/net/openhft/chronicle/map/FileLockUtilTest.java +++ b/src/test/java/net/openhft/chronicle/map/FileLockUtilTest.java @@ -48,12 +48,10 @@ public class FileLockUtilTest { @Test public void testExclusiveNormalCase() { - if (!OS.isWindows()) { - FileLockUtil.acquireExclusiveFileLock(canonicalFile, fileChannel); - FileLockUtil.releaseExclusiveFileLock(canonicalFile); - FileLockUtil.acquireExclusiveFileLock(canonicalFile, fileChannel); - FileLockUtil.releaseExclusiveFileLock(canonicalFile); - } + FileLockUtil.acquireExclusiveFileLock(canonicalFile, fileChannel); + FileLockUtil.releaseExclusiveFileLock(canonicalFile); + FileLockUtil.acquireExclusiveFileLock(canonicalFile, fileChannel); + FileLockUtil.releaseExclusiveFileLock(canonicalFile); } @Test @@ -98,11 +96,9 @@ public class FileLockUtilTest { @Test public void testRunExclusively() { - if (!OS.isWindows()) { - final AtomicInteger cnt = new AtomicInteger(); - FileLockUtil.runExclusively(canonicalFile, fileChannel, cnt::incrementAndGet); - assertEquals(1, cnt.get()); - } + final AtomicInteger cnt = new AtomicInteger(); + FileLockUtil.runExclusively(canonicalFile, fileChannel, cnt::incrementAndGet); + assertEquals(1, cnt.get()); } @Test