diff --git a/src/main/java/org/tikv/common/TiSession.java b/src/main/java/org/tikv/common/TiSession.java index c647f7731c..67062db87e 100644 --- a/src/main/java/org/tikv/common/TiSession.java +++ b/src/main/java/org/tikv/common/TiSession.java @@ -197,7 +197,7 @@ public class TiSession implements AutoCloseable { return res; } - public synchronized RegionManager getRegionManager() { + public RegionManager getRegionManager() { RegionManager res = regionManager; if (res == null) { synchronized (this) { @@ -474,7 +474,9 @@ public class TiSession implements AutoCloseable { synchronized (sessionCachedMap) { sessionCachedMap.remove(conf.getPdAddrsString()); } - + if (regionManager != null) { + regionManager.close(); + } if (tableScanThreadPool != null) { tableScanThreadPool.shutdownNow(); } diff --git a/src/main/java/org/tikv/common/region/RegionManager.java b/src/main/java/org/tikv/common/region/RegionManager.java index f2432aa908..5bf7d86066 100644 --- a/src/main/java/org/tikv/common/region/RegionManager.java +++ b/src/main/java/org/tikv/common/region/RegionManager.java @@ -99,6 +99,12 @@ public class RegionManager { this.executor = null; } + public synchronized void close() { + if (this.executor != null) { + this.executor.shutdownNow(); + } + } + public Function getCacheInvalidateCallback() { return cacheInvalidateCallback; }