diff --git a/src/main/java/org/tikv/common/TiSession.java b/src/main/java/org/tikv/common/TiSession.java index 749db0dc6c8..8c1a83d8e63 100644 --- a/src/main/java/org/tikv/common/TiSession.java +++ b/src/main/java/org/tikv/common/TiSession.java @@ -196,7 +196,7 @@ public Catalog getCatalog() { return res; } - public synchronized RegionManager getRegionManager() { + public RegionManager getRegionManager() { RegionManager res = regionManager; if (res == null) { synchronized (this) { @@ -473,7 +473,9 @@ public synchronized void close() throws Exception { 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 128509408cc..5f0fe0ba6fe 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 RegionManager(ReadOnlyPDClient pdClient) { this.executor = null; } + public synchronized void close() { + if (this.executor != null) { + this.executor.shutdownNow(); + } + } + public Function getCacheInvalidateCallback() { return cacheInvalidateCallback; }