From 7feaefb229d567a5f56e8a29746d49db77f63314 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Thu, 3 Dec 2009 14:49:39 +0000 Subject: Use the same thread pool configuration for Daem... Use the same thread pool configuration for DaemonScheduler. --- src/actors/scala/actors/Scheduler.scala | 21 ++------------------- .../scala/actors/scheduler/DaemonScheduler.scala | 6 +----- .../scala/actors/scheduler/ThreadPoolConfig.scala | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 24 deletions(-) (limited to 'src/actors') diff --git a/src/actors/scala/actors/Scheduler.scala b/src/actors/scala/actors/Scheduler.scala index 47abf9477e..c10227a9ba 100644 --- a/src/actors/scala/actors/Scheduler.scala +++ b/src/actors/scala/actors/Scheduler.scala @@ -11,7 +11,7 @@ package scala.actors import java.util.concurrent._ -import scheduler.{DelegatingScheduler, ForkJoinScheduler, ResizableThreadPoolScheduler} +import scheduler.{DelegatingScheduler, ForkJoinScheduler, ResizableThreadPoolScheduler, ThreadPoolConfig} /** * The Scheduler object is used by Actor to @@ -24,24 +24,7 @@ object Scheduler extends DelegatingScheduler { Debug.info("initializing "+this+"...") def makeNewScheduler: IScheduler = { - val useForkJoin = try { - val fjProp = System.getProperty("actors.enableForkJoin") - if (fjProp != null) - fjProp.equals("true") - else { - val javaVersion = System.getProperty("java.version") - val jvmVendor = System.getProperty("java.vm.vendor") - Debug.info(this+": java.version = "+javaVersion) - Debug.info(this+": java.vm.vendor = "+jvmVendor) - (javaVersion.indexOf("1.6") != -1 || - javaVersion.indexOf("1.7") != -1) && - // on IBM J9 1.6 do not use ForkJoinPool - (jvmVendor.indexOf("Sun") != -1) - } - } catch { - case se: SecurityException => false - } - val sched = if (!useForkJoin) { + val sched = if (!ThreadPoolConfig.useForkJoin) { val s = new ResizableThreadPoolScheduler(false) s.start() s diff --git a/src/actors/scala/actors/scheduler/DaemonScheduler.scala b/src/actors/scala/actors/scheduler/DaemonScheduler.scala index e421984d8b..3013aa23c0 100644 --- a/src/actors/scala/actors/scheduler/DaemonScheduler.scala +++ b/src/actors/scala/actors/scheduler/DaemonScheduler.scala @@ -17,11 +17,7 @@ package scheduler object DaemonScheduler extends DelegatingScheduler { def makeNewScheduler(): IScheduler = { - // test on which JVM we are running - val jvmVendor = System.getProperty("java.vm.vendor") - val sched = if (jvmVendor.indexOf("IBM") != -1) { - Debug.info(this+": running on a "+jvmVendor+" JVM") - // on IBM J9 1.6 do not use ForkJoinPool + val sched = if (!ThreadPoolConfig.useForkJoin) { val s = new ResizableThreadPoolScheduler(true) s.start() s diff --git a/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala b/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala index 3c2f5ce5da..e69f0be2e6 100644 --- a/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala +++ b/src/actors/scala/actors/scheduler/ThreadPoolConfig.scala @@ -41,4 +41,24 @@ object ThreadPoolConfig { case Some(i) if (i < corePoolSize) => corePoolSize case _ => 256 } + + private[actors] def useForkJoin: Boolean = + try { + val fjProp = System.getProperty("actors.enableForkJoin") + if (fjProp != null) + fjProp.equals("true") + else { + val javaVersion = System.getProperty("java.version") + val jvmVendor = System.getProperty("java.vm.vendor") + Debug.info(this+": java.version = "+javaVersion) + Debug.info(this+": java.vm.vendor = "+jvmVendor) + (javaVersion.indexOf("1.6") != -1 || + javaVersion.indexOf("1.7") != -1) && + // on IBM J9 1.6 do not use ForkJoinPool + (jvmVendor.indexOf("Sun") != -1) + } + } catch { + case se: SecurityException => false + } + } -- cgit v1.2.3