From d1092d6583cf18a4e3b432b47cee2a828f13b225 Mon Sep 17 00:00:00 2001 From: Ray Milkey Date: Tue, 2 Apr 2019 09:12:00 -0700 Subject: [PATCH] properly reallocate thread pools after a restart Change-Id: I08042acd75ebcb3ca16af189917c1fe6904f3afd --- .../store/flow/impl/ECFlowRuleStore.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/ECFlowRuleStore.java b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/ECFlowRuleStore.java index 4294f6e5ad..04c6ecf0da 100644 --- a/core/store/dist/src/main/java/org/onosproject/store/flow/impl/ECFlowRuleStore.java +++ b/core/store/dist/src/main/java/org/onosproject/store/flow/impl/ECFlowRuleStore.java @@ -179,11 +179,8 @@ public class ECFlowRuleStore private ExecutorService messageHandlingExecutor; private ExecutorService eventHandler; - private final ScheduledExecutorService backupScheduler = Executors.newSingleThreadScheduledExecutor( - groupedThreads("onos/flow", "backup-scheduler", log)); - private final ExecutorService backupExecutor = Executors.newFixedThreadPool( - max(min(Runtime.getRuntime().availableProcessors() * 2, 16), 4), - groupedThreads("onos/flow", "backup-%d", log)); + private ScheduledExecutorService backupScheduler; + private ExecutorService backupExecutor; private EventuallyConsistentMap> deviceTableStats; private final EventuallyConsistentMapListener> tableStatsListener = @@ -213,6 +210,12 @@ public class ECFlowRuleStore public void activate(ComponentContext context) { configService.registerProperties(getClass()); + backupScheduler = Executors.newSingleThreadScheduledExecutor( + groupedThreads("onos/flow", "backup-scheduler", log)); + backupExecutor = Executors.newFixedThreadPool( + max(min(Runtime.getRuntime().availableProcessors() * 2, 16), 4), + groupedThreads("onos/flow", "backup-%d", log)); + idGenerator = coreService.getIdGenerator(FlowRuleService.FLOW_OP_TOPIC); local = clusterService.getLocalNode().id(); @@ -255,6 +258,8 @@ public class ECFlowRuleStore messageHandlingExecutor.shutdownNow(); backupScheduler.shutdownNow(); backupExecutor.shutdownNow(); + backupScheduler = null; + backupExecutor = null; log.info("Stopped"); }