diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 2db18cc461..c0715adf72 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -530,23 +530,21 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } ConnectionHolder pollLast(long timeout, TimeUnit unit) throws InterruptedException { - long nanos = unit.toNanos(timeout); + long estimate = unit.toNanos(timeout); for (;;) { if (activeCount >= maxActive) { - nanos = notMaxActive.awaitNanos(nanos); + estimate = notMaxActive.awaitNanos(estimate); } if (poolingCount == 0) { lowWater.signal(); - long estimate = nanos; for (;;) { estimate = notEmpty.awaitNanos(estimate); if (poolingCount == 0) { if (estimate > 0) { - nanos = estimate; continue; } @@ -562,13 +560,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat connections[lastIndex] = null; poolingCount--; - // if (lastIndex == minIdle - 1) { - // lowWater.signal(); - // } -// if ((minIdle == 0 && poolingCount == 0) || poolingCount <= minIdle - 1) { -// lowWater.signal(); -// } - return last; } }