From ca0464d6596ad27cf510faeab9e7a4f65e19de5f Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Thu, 17 Sep 2015 21:42:25 +0900 Subject: [PATCH] Tweaks to investigate Windows infinite loop and/or spurious wakeup. --- src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java | 4 ++-- src/main/java/com/zaxxer/hikari/util/Sequence.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java b/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java index 51f408d6..b57c4b38 100644 --- a/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java +++ b/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java @@ -156,8 +156,8 @@ public class ConcurrentBag implements AutoCloseab addItemFuture = listener.addBagItem(); } - timeout = originTimeout - (System.nanoTime() - startScan); - } while (timeout > 1000L && synchronizer.waitUntilSequenceExceeded(startSeq, timeout)); + timeout = originTimeout - Math.abs(System.nanoTime() - startScan); + } while (timeout > 100_00L && synchronizer.waitUntilSequenceExceeded(startSeq, timeout)); return null; } diff --git a/src/main/java/com/zaxxer/hikari/util/Sequence.java b/src/main/java/com/zaxxer/hikari/util/Sequence.java index d0469a64..9436f43b 100644 --- a/src/main/java/com/zaxxer/hikari/util/Sequence.java +++ b/src/main/java/com/zaxxer/hikari/util/Sequence.java @@ -50,7 +50,7 @@ public interface Sequence public static Sequence create() { try { - if (Sequence.class.getClassLoader().loadClass("java.util.concurrent.atomic.LongAdder") != null) { + if (Sequence.class.getClassLoader().loadClass("java.util.concurrent.atomic.LongAdder") != null && !Boolean.getBoolean("com.zaxxer.hikari.useAtomicLongSequence")) { return new Java8Sequence(); } }