From 88d6b89163541b8e1d01ea9a941c0554da05a29b Mon Sep 17 00:00:00 2001 From: Viktor Klang Date: Tue, 27 Dec 2011 15:07:36 +0100 Subject: [PATCH] Automatically changing min/max so that min is always <= max and max is always >= min --- .../main/scala/akka/dispatch/ThreadPoolBuilder.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala b/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala index 22dfd15ffa..aba58df3a4 100644 --- a/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala +++ b/akka-actor/src/main/scala/akka/dispatch/ThreadPoolBuilder.scala @@ -111,10 +111,16 @@ case class ThreadPoolConfigDispatcherBuilder(dispatcherFactory: (ThreadPoolConfi this.copy(config = config.copy(queueFactory = arrayBlockingQueue(capacity, fair))) def setCorePoolSize(size: Int): ThreadPoolConfigDispatcherBuilder = - this.copy(config = config.copy(corePoolSize = size)) + if (config.maxPoolSize < size) + this.copy(config = config.copy(corePoolSize = size, maxPoolSize = size)) + else + this.copy(config = config.copy(corePoolSize = size)) def setMaxPoolSize(size: Int): ThreadPoolConfigDispatcherBuilder = - this.copy(config = config.copy(maxPoolSize = size)) + if (config.corePoolSize > size) + this.copy(config = config.copy(corePoolSize = size, maxPoolSize = size)) + else + this.copy(config = config.copy(maxPoolSize = size)) def setCorePoolSizeFromFactor(min: Int, multiplier: Double, max: Int): ThreadPoolConfigDispatcherBuilder = setCorePoolSize(scaledPoolSize(min, multiplier, max))