summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2009-12-03 14:49:39 +0000
committerPhilipp Haller <hallerp@gmail.com>2009-12-03 14:49:39 +0000
commit7feaefb229d567a5f56e8a29746d49db77f63314 (patch)
tree435ac9447d4c9168085bbfb1f9fb2643433e656f /src
parent43d9fc12486e4e26be18eb0251c3479e9f559cd9 (diff)
downloadscala-7feaefb229d567a5f56e8a29746d49db77f63314.tar.gz
scala-7feaefb229d567a5f56e8a29746d49db77f63314.tar.bz2
scala-7feaefb229d567a5f56e8a29746d49db77f63314.zip
Use the same thread pool configuration for Daem...
Use the same thread pool configuration for DaemonScheduler.
Diffstat (limited to 'src')
-rw-r--r--src/actors/scala/actors/Scheduler.scala21
-rw-r--r--src/actors/scala/actors/scheduler/DaemonScheduler.scala6
-rw-r--r--src/actors/scala/actors/scheduler/ThreadPoolConfig.scala20
3 files changed, 23 insertions, 24 deletions
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 <code>Scheduler</code> object is used by <code>Actor</code> 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
+ }
+
}