support lock unfair

This commit is contained in:
wenshao
2012-09-20 08:59:20 +08:00
parent 2e84c8b200
commit 3d5ea4cb3c
3 changed files with 52 additions and 12 deletions
@@ -215,11 +215,15 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
protected boolean useOracleImplicitCache = true;
protected final ReentrantLock lock = new ReentrantLock(true);
protected final ReentrantLock lock;
protected AtomicLong createCount = new AtomicLong();
protected AtomicLong destroyCount = new AtomicLong();
public DruidAbstractDataSource(boolean lockFair){
lock = new ReentrantLock(lockFair);
}
public boolean isOracle() {
return isOracle;
}
@@ -563,7 +567,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
}
public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) {
this.removeAbandonedTimeoutMillis = (long)removeAbandonedTimeout * 1000;
this.removeAbandonedTimeoutMillis = (long) removeAbandonedTimeout * 1000;
}
public void setRemoveAbandonedTimeoutMillis(long removeAbandonedTimeoutMillis) {
@@ -923,9 +927,9 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements
this.jdbcUrl = jdbcUrl;
// if (jdbcUrl.startsWith(ConfigFilter.URL_PREFIX)) {
// this.filters.add(new ConfigFilter());
// }
// if (jdbcUrl.startsWith(ConfigFilter.URL_PREFIX)) {
// this.filters.add(new ConfigFilter());
// }
}
public String getDriverClassName() {
@@ -125,6 +125,11 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
private JdbcDataSourceStat dataSourceStat;
public DruidDataSource(){
this(true);
}
public DruidDataSource(boolean fairLock){
super (fairLock);
}
public String getInitStackTrace() {
@@ -923,7 +928,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
}
}
void putLast(DruidConnectionHolder e, long lastActiveTimeMillis) throws SQLException {
void putLast(DruidConnectionHolder e, long lastActiveTimeMillis) {
e.setLastActiveTimeMillis(lastActiveTimeMillis);
connections[poolingCount++] = e;