From efa2fcc4403ab077c35cd169641cc07346e10f38 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Sat, 22 Mar 2014 15:41:05 +0900 Subject: [PATCH] Restore former barrow() logic, add getCount() and size)() methods. --- .../com/zaxxer/hikari/util/ConcurrentBag.java | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java b/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java index ff07e9ff..e9d21d02 100644 --- a/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java +++ b/src/main/java/com/zaxxer/hikari/util/ConcurrentBag.java @@ -75,7 +75,7 @@ public class ConcurrentBag>> threadList; @@ -102,7 +102,7 @@ public class ConcurrentBag> list = threadList.get(); @@ -122,13 +122,10 @@ public class ConcurrentBag 0 && timeoutMillis > 0) ? Math.max((timeoutMillis / (retries + 1)), 1000) : timeoutMillis; - long totalTimeoutNs = TimeUnit.MILLISECONDS.toNanos(timeoutMillis); - boolean tryAddItem = true; - while (totalTimeoutNs > 0) - { - final long startAttempt = System.nanoTime(); + // Otherwise, scan the shared list ... for maximum of timeout + timeout = timeUnit.toNanos(timeout); + do { + final long startScan = System.nanoTime(); for (T reference : sharedList) { if (reference.compareAndSetState(STATE_NOT_IN_USE, STATE_IN_USE)) @@ -137,35 +134,15 @@ public class ConcurrentBag 0); return null; } @@ -317,6 +294,29 @@ public class ConcurrentBag