summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java b/container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java
index 425387039ff..dc594903f21 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/ThreadPoolProvider.java
@@ -5,6 +5,7 @@ import com.google.inject.Inject;
import com.yahoo.component.AbstractComponent;
import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.container.handler.threadpool.ContainerThreadPool;
+import com.yahoo.container.handler.threadpool.ContainerThreadpoolConfig;
import com.yahoo.container.protect.ProcessTerminator;
import com.yahoo.jdisc.Metric;
@@ -23,12 +24,27 @@ public class ThreadPoolProvider extends AbstractComponent implements Provider<Ex
private final ContainerThreadPool threadpool;
@Inject
- public ThreadPoolProvider(ThreadpoolConfig threadpoolConfig, Metric metric) {
- this.threadpool = new ContainerThreadPool(threadpoolConfig, metric);
+ public ThreadPoolProvider(ThreadpoolConfig config, Metric metric) {
+ this.threadpool = new ContainerThreadPool(translateConfig(config), metric);
}
- public ThreadPoolProvider(ThreadpoolConfig threadpoolConfig, Metric metric, ProcessTerminator processTerminator) {
- this.threadpool = new ContainerThreadPool(threadpoolConfig, metric, processTerminator);
+ public ThreadPoolProvider(ThreadpoolConfig config, Metric metric, ProcessTerminator processTerminator) {
+ this.threadpool = new ContainerThreadPool(translateConfig(config), metric, processTerminator);
+ }
+
+ /**
+ * The underlying {@link ContainerThreadPool} uses a different config definition ({@link ContainerThreadpoolConfig})
+ * as {@link ThreadpoolConfig} is currently public api.
+ */
+ private static ContainerThreadpoolConfig translateConfig(ThreadpoolConfig config) {
+ return new ContainerThreadpoolConfig(
+ new ContainerThreadpoolConfig.Builder()
+ .maxThreads(config.maxthreads())
+ .minThreads(config.corePoolSize())
+ .name(config.name())
+ .queueSize(config.queueSize())
+ .keepAliveTime(config.keepAliveTime())
+ .maxThreadExecutionTimeSeconds(config.maxThreadExecutionTimeSeconds()));
}
/**