From a388eaec1d553e36fc6b4e6d83c033fbc0733488 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Fri, 14 Jun 2019 20:53:54 +0100 Subject: [PATCH] shutdown all connections on shutdown --- core/src/main/groovy/com/muwire/core/Core.groovy | 6 +++++- .../com/muwire/core/download/DownloadManager.groovy | 4 ++++ .../groovy/com/muwire/core/download/Downloader.groovy | 8 ++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/src/main/groovy/com/muwire/core/Core.groovy b/core/src/main/groovy/com/muwire/core/Core.groovy index 08cf470c..25b3c9f0 100644 --- a/core/src/main/groovy/com/muwire/core/Core.groovy +++ b/core/src/main/groovy/com/muwire/core/Core.groovy @@ -69,6 +69,7 @@ public class Core { private final ConnectionAcceptor connectionAcceptor private final ConnectionEstablisher connectionEstablisher private final HasherService hasherService + private final DownloadManager downloadManager public Core(MuWireSettings props, File home, String myVersion) { this.home = home @@ -195,7 +196,7 @@ public class Core { eventBus.register(ResultsEvent.class, searchManager) log.info("initializing download manager") - DownloadManager downloadManager = new DownloadManager(eventBus, i2pConnector, home, me) + downloadManager = new DownloadManager(eventBus, i2pConnector, home, me) eventBus.register(UIDownloadEvent.class, downloadManager) eventBus.register(UILoadedEvent.class, downloadManager) eventBus.register(FileDownloadedEvent.class, downloadManager) @@ -234,6 +235,9 @@ public class Core { public void shutdown() { connectionManager.shutdown() + downloadManager.shutdown() + connectionAcceptor.stop() + connectionEstablisher.stop() } static main(args) { diff --git a/core/src/main/groovy/com/muwire/core/download/DownloadManager.groovy b/core/src/main/groovy/com/muwire/core/download/DownloadManager.groovy index 6156d8d1..d6286a5e 100644 --- a/core/src/main/groovy/com/muwire/core/download/DownloadManager.groovy +++ b/core/src/main/groovy/com/muwire/core/download/DownloadManager.groovy @@ -135,4 +135,8 @@ public class DownloadManager { } } } + + public void shutdown() { + downloaders.each { it.stop() } + } } diff --git a/core/src/main/groovy/com/muwire/core/download/Downloader.groovy b/core/src/main/groovy/com/muwire/core/download/Downloader.groovy index 34f9ccc2..31603aac 100644 --- a/core/src/main/groovy/com/muwire/core/download/Downloader.groovy +++ b/core/src/main/groovy/com/muwire/core/download/Downloader.groovy @@ -169,11 +169,15 @@ public class Downloader { public void cancel() { cancelled = true + stop() + file.delete() + piecesFile.delete() + } + + void stop() { activeWorkers.values().each { it.cancel() } - file.delete() - piecesFile.delete() } public int activeWorkers() {