From eec2c409f1224c8ab317009550d71dfef8e5af8f Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Fri, 13 Aug 2010 14:43:02 +0200 Subject: [PATCH] Cleaned up code and verified tests --- akka-core/src/main/scala/dispatch/Dispatchers.scala | 5 +++-- .../src/main/scala/dispatch/ThreadPoolBuilder.scala | 13 +++++++++++-- .../src/test/scala/dispatch/DispatchersSpec.scala | 5 ++--- config/akka-reference.conf | 7 ++++--- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/akka-core/src/main/scala/dispatch/Dispatchers.scala b/akka-core/src/main/scala/dispatch/Dispatchers.scala index 58a67fdbd8..f9a72032af 100644 --- a/akka-core/src/main/scala/dispatch/Dispatchers.scala +++ b/akka-core/src/main/scala/dispatch/Dispatchers.scala @@ -123,9 +123,10 @@ object Dispatchers extends Logging { * Creates of obtains a dispatcher from a ConfigMap according to the format below * * default-dispatcher { - * type = "Default" # ReactorBasedSingleThreadEventDriven, ExecutorBasedEventDrivenWorkStealing, ExecutorBasedEventDriven, + * type = "GlobalExecutorBasedEventDriven" # Must be one of the following, all "Global*" are non-configurable + * # ReactorBasedSingleThreadEventDriven, ExecutorBasedEventDrivenWorkStealing, ExecutorBasedEventDriven, * # ReactorBasedThreadPoolEventDriven, Hawt, GlobalReactorBasedSingleThreadEventDriven, - * # GlobalReactorBasedThreadPoolEventDriven, GlobalExecutorBasedEventDriven, GlobalHawt, Default + * # GlobalReactorBasedThreadPoolEventDriven, GlobalExecutorBasedEventDriven, GlobalHawt * keep-alive-ms = 60000 # Keep alive time for threads * core-pool-size = 4 # No of core threads * max-pool-size = 16 # Max no of threads diff --git a/akka-core/src/main/scala/dispatch/ThreadPoolBuilder.scala b/akka-core/src/main/scala/dispatch/ThreadPoolBuilder.scala index 9439080010..340726a222 100644 --- a/akka-core/src/main/scala/dispatch/ThreadPoolBuilder.scala +++ b/akka-core/src/main/scala/dispatch/ThreadPoolBuilder.scala @@ -12,7 +12,7 @@ import ThreadPoolExecutor.CallerRunsPolicy import se.scalablesolutions.akka.actor.IllegalActorStateException import se.scalablesolutions.akka.util.{Logger, Logging} -trait ThreadPoolBuilder { +trait ThreadPoolBuilder extends Logging { val name: String private val NR_START_THREADS = 16 @@ -34,6 +34,15 @@ trait ThreadPoolBuilder { def buildThreadPool(): Unit = synchronized { ensureNotActive inProcessOfBuilding = false + + log.debug("Creating a %s with config [core-pool:%d,max-pool:%d,timeout:%d,allowCoreTimeout:%s,rejectPolicy:%s]", + getClass.getName, + threadPoolBuilder.getCorePoolSize, + threadPoolBuilder.getMaximumPoolSize, + threadPoolBuilder.getKeepAliveTime(MILLISECONDS), + threadPoolBuilder.allowsCoreThreadTimeOut, + threadPoolBuilder.getRejectedExecutionHandler.getClass.getSimpleName) + if (boundedExecutorBound > 0) { val boundedExecutor = new BoundedExecutorDecorator(threadPoolBuilder, boundedExecutorBound) boundedExecutorBound = -1 @@ -108,7 +117,7 @@ trait ThreadPoolBuilder { true } else { - Logger(getClass).info("Tried to configure an already started ThreadPoolBuilder") + log.warning("Tried to configure an already started ThreadPoolBuilder of type [%s]",getClass.getName) false } } diff --git a/akka-core/src/test/scala/dispatch/DispatchersSpec.scala b/akka-core/src/test/scala/dispatch/DispatchersSpec.scala index 0c6837f764..3b99cddfc7 100644 --- a/akka-core/src/test/scala/dispatch/DispatchersSpec.scala +++ b/akka-core/src/test/scala/dispatch/DispatchersSpec.scala @@ -35,8 +35,7 @@ object DispatchersSpec { "GlobalReactorBasedSingleThreadEventDriven" -> instance(globalReactorBasedSingleThreadEventDrivenDispatcher), "GlobalReactorBasedThreadPoolEventDriven" -> instance(globalReactorBasedThreadPoolEventDrivenDispatcher), "GlobalExecutorBasedEventDriven" -> instance(globalExecutorBasedEventDrivenDispatcher), - "GlobalHawt" -> instance(globalHawtDispatcher), - "Default" -> instance(globalExecutorBasedEventDrivenDispatcher) + "GlobalHawt" -> instance(globalHawtDispatcher) ) def validTypes = typesAndValidators.keys.toList @@ -68,7 +67,7 @@ class DispatchersSpec extends JUnitSuite { } @Test def defaultingToDefaultWhileLoadingTheDefaultShouldWork { - assert(from(Config.fromMap(Map(tipe -> "Default"))).getOrElse(defaultGlobalDispatcher) == defaultGlobalDispatcher) + assert(from(Config.fromMap(Map())).getOrElse(defaultGlobalDispatcher) == defaultGlobalDispatcher) } } diff --git a/config/akka-reference.conf b/config/akka-reference.conf index 7b05c4e7de..bd1fdd0c02 100644 --- a/config/akka-reference.conf +++ b/config/akka-reference.conf @@ -22,9 +22,10 @@ akka { serialize-messages = off # does a deep clone of (non-primitive) messages to ensure immutability throughput = 5 # Default throughput for all ExecutorBasedEventDrivenDispatcher default-dispatcher { - type = "Default" # ReactorBasedSingleThreadEventDriven, ExecutorBasedEventDrivenWorkStealing, ExecutorBasedEventDriven, + type = "GlobalExecutorBasedEventDriven" # Must be one of the following, all "Global*" are non-configurable + # ReactorBasedSingleThreadEventDriven, (ExecutorBasedEventDrivenWorkStealing), ExecutorBasedEventDriven, # ReactorBasedThreadPoolEventDriven, Hawt, GlobalReactorBasedSingleThreadEventDriven, - # GlobalReactorBasedThreadPoolEventDriven, GlobalExecutorBasedEventDriven, GlobalHawt, Default + # GlobalReactorBasedThreadPoolEventDriven, GlobalExecutorBasedEventDriven, GlobalHawt keep-alive-ms = 60000 # Keep alive time for threads core-pool-size = 4 # No of core threads max-pool-size = 16 # Max no of threads @@ -61,7 +62,7 @@ akka { authenticator = "sample.security.BasicAuthenticationService" # The authentication service to use. Need to be overridden (uses sample now) comet-dispatcher { - type = "Default" + #type = "Hawt" //uses the default dispatcher is commented out } #maxInactiveActivity = 60000 #Atmosphere CometSupport maxInactiveActivity