From: Yevgeny Khodorkovsky Date: Wed, 31 Jul 2013 00:52:39 +0000 (-0700) Subject: Gracefully stop Host Tracker task threads X-Git-Tag: releasepom-0.1.0~248 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=959991dd6aec4755c17c1edb550f913e6959117c Gracefully stop Host Tracker task threads - On bundle stop, stop ARP probe/refresh threads to avoid calling stopped services or reading terminated cache. Change-Id: Ifa1224d1b9e9fbb245844cc8fb1a6d7a02bb5867 Signed-off-by: Yevgeny Khodorkovsky --- diff --git a/opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java b/opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java index f600e6b2ac..af983b3c8b 100644 --- a/opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java +++ b/opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java @@ -95,7 +95,7 @@ public class HostTracker implements IfIptoHost, IfHostListener, ISwitchManagerAw private IClusterContainerServices clusterContainerService = null; private ISwitchManager switchManager = null; private Timer timer; - private Timer arp_refresh_timer; + private Timer arpRefreshTimer; private String containerName = null; private ExecutorService executor; private static class ARPPending { @@ -160,8 +160,8 @@ public class HostTracker implements IfIptoHost, IfHostListener, ISwitchManagerAw timer.schedule(new OutStandingARPHandler(), 4000, 4000); executor = Executors.newFixedThreadPool(2); /* ARP Refresh Timer to go off every 5 seconds to implement ARP aging */ - arp_refresh_timer = new Timer(); - arp_refresh_timer.schedule(new ARPRefreshHandler(), 5000, 5000); + arpRefreshTimer = new Timer(); + arpRefreshTimer.schedule(new ARPRefreshHandler(), 5000, 5000); logger.debug("startUp: Caches created, timers started"); } @@ -911,7 +911,6 @@ public class HostTracker implements IfIptoHost, IfHostListener, ISwitchManagerAw public void run() { ARPPending arphost; /* This routine runs every 4 seconds */ - // logger.info ("ARP Handler called"); for (int i = 0; i < ARPPendingList.size(); i++) { arphost = ARPPendingList.get(i); if (arphost.getSent_count() < switchManager.getHostRetryCount()) { @@ -943,7 +942,7 @@ public class HostTracker implements IfIptoHost, IfHostListener, ISwitchManagerAw failedARPReqList.add(arphost); } else { - logger.error("Inavlid arp_sent count for entery at index: {}", i); + logger.error("Inavlid arp_sent count for entry at index: {}", i); } } } @@ -1386,7 +1385,12 @@ public class HostTracker implements IfIptoHost, IfHostListener, ISwitchManagerAw * calls * */ - void stop() { + void stop(){ + } + + void stopping() { + arpRefreshTimer.cancel(); + timer.cancel(); executor.shutdown(); }