From 98f7f788eb4d0b12bcd76a7e0ba3d0dc275aed62 Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 12 May 2011 08:28:03 +0000 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81timeBetweenEvictionRunsMillis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@37 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index cb0401ce69..9782b48faa 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -511,17 +511,20 @@ public class DruidDataSource extends DruidDataAbstractSource implements DruidDat public void run() { for (;;) { // 从前面开始删除 - try { + if (timeBetweenEvictionRunsMillis > 0) { + Thread.sleep(timeBetweenEvictionRunsMillis); + } + ConnectionHolder first = null; lock.lock(); try { - if (count <= maxIdle) { - highWater.await(); + if (count <= 0) { continue; } - if (count <= 0) { + if (count <= maxIdle) { + highWater.await(); continue; } @@ -533,6 +536,7 @@ public class DruidDataSource extends DruidDataAbstractSource implements DruidDat continue; } + // removete first System.arraycopy(connections, 1, connections, 0, count - 1); connections[count - 1] = null; } finally {