From f52a0efe57c34214685447caec81b538671924ec Mon Sep 17 00:00:00 2001 From: wenshao Date: Wed, 7 Sep 2011 17:56:25 +0000 Subject: [PATCH] git-svn-id: http://code.alibabatech.com/svn/druid/trunk@687 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 9c332decb2..67180f4b90 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -677,15 +677,15 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } try { - // 必须存在线程等待,才创建连接 - int waitThreadCount = lock.getWaitQueueLength(notEmpty); - // 防止创建超过maxActive数量的连接 if (activeCount + poolingCount >= maxActive) { empty.await(); continue; } - + + // 必须存在线程等待,才创建连接 + int waitThreadCount = lock.getWaitQueueLength(notEmpty); + if (poolingCount >= waitThreadCount) { notEmpty.signal(); // 防止信号丢失引起的等待 empty.await(); @@ -950,7 +950,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat public long getNotEmptyWaitCount() { return notEmptyWaitCount; } - + public long getNotEmptyWaitMillis() { return notEmptyWaitNanos / (1000 * 1000); }