Author: trustin
Date: Tue Feb 19 19:33:32 2008
New Revision: 629332
URL: http://svn.apache.org/viewvc?rev=629332&view=rev
Log:
Fixed issue: DIRMINA-523 (Default thread model should be created lazily)
* The default thread model is created on demand now to suppress unnecessary
creation of daemon threads
Modified:
mina/branches/1.0/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
Modified:
mina/branches/1.0/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
URL:
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java?rev=629332&r1=629331&r2=629332&view=diff
==============================================================================
---
mina/branches/1.0/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
(original)
+++
mina/branches/1.0/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
Tue Feb 19 19:33:32 2008
@@ -40,15 +40,14 @@
private IoFilterChainBuilder filterChainBuilder = new
DefaultIoFilterChainBuilder();
/**
- * The default thread model.
+ * The default thread model (initialized lazily).
*/
- private final ThreadModel defaultThreadModel = ExecutorThreadModel
- .getInstance("AnonymousIoService");
+ private ThreadModel defaultThreadModel;
/**
* Current thread model.
*/
- private ThreadModel threadModel = defaultThreadModel;
+ private ThreadModel threadModel;
public BaseIoServiceConfig() {
super();
@@ -75,6 +74,9 @@
}
public ThreadModel getThreadModel() {
+ if (threadModel == null) {
+ threadModel = getDefaultThreadModel();
+ }
return threadModel;
}
@@ -82,9 +84,16 @@
if (threadModel == null) {
// We reuse the previous default model to prevent too much
// daemon threads are created.
- threadModel = defaultThreadModel;
+ threadModel = getDefaultThreadModel();
}
this.threadModel = threadModel;
+ }
+
+ private synchronized ThreadModel getDefaultThreadModel() {
+ if (defaultThreadModel == null) {
+ defaultThreadModel =
ExecutorThreadModel.getInstance("AnonymousIoService");
+ }
+ return defaultThreadModel;
}
public Object clone() {
Modified:
mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
URL:
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java?rev=629332&r1=629331&r2=629332&view=diff
==============================================================================
---
mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
(original)
+++
mina/branches/1.1/core/src/main/java/org/apache/mina/common/support/BaseIoServiceConfig.java
Tue Feb 19 19:33:32 2008
@@ -40,15 +40,14 @@
private IoFilterChainBuilder filterChainBuilder = new
DefaultIoFilterChainBuilder();
/**
- * The default thread model.
+ * The default thread model (initialized lazily).
*/
- private final ThreadModel defaultThreadModel = ExecutorThreadModel
- .getInstance("AnonymousIoService");
+ private ThreadModel defaultThreadModel;
/**
* Current thread model.
*/
- private ThreadModel threadModel = defaultThreadModel;
+ private ThreadModel threadModel;
public BaseIoServiceConfig() {
super();
@@ -75,6 +74,9 @@
}
public ThreadModel getThreadModel() {
+ if (threadModel == null) {
+ threadModel = getDefaultThreadModel();
+ }
return threadModel;
}
@@ -82,11 +84,17 @@
if (threadModel == null) {
// We reuse the previous default model to prevent too much
// daemon threads are created.
- threadModel = defaultThreadModel;
+ threadModel = getDefaultThreadModel();
}
this.threadModel = threadModel;
}
+ private synchronized ThreadModel getDefaultThreadModel() {
+ if (defaultThreadModel == null) {
+ defaultThreadModel =
ExecutorThreadModel.getInstance("AnonymousIoService");
+ }
+ return defaultThreadModel;
+ }
@Override
public Object clone() {
BaseIoServiceConfig ret;