git-svn-id: http://code.alibabatech.com/svn/druid/trunk@587 b9813039-fb51-4c41-a8b9-e21c2acb5095

This commit is contained in:
wenshao
2011-09-02 16:26:58 +00:00
parent 5c2dd78c7d
commit bb38a06af3
@@ -500,8 +500,13 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
}
ConnectionHolder takeLast() throws InterruptedException {
if (activeCount >= maxActive) {
notMaxActive.await(); // signal by recycle
while (activeCount >= maxActive) {
try {
notMaxActive.await(); // signal by recycle
} catch (InterruptedException ie) {
notMaxActive.signal(); // propagate to non-interrupted thread
throw ie;
}
}
try {
@@ -525,8 +530,13 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
long estimate = unit.toNanos(timeout);
for (;;) {
if (activeCount >= maxActive) {
estimate = notMaxActive.awaitNanos(estimate); // signal by recycle
while (activeCount >= maxActive) {
try {
estimate = notMaxActive.awaitNanos(estimate); // signal by recycle
} catch (InterruptedException ie) {
notMaxActive.signal(); // propagate to non-interrupted thread
throw ie;
}
}
if (poolingCount == 0) {