shut down more services explicitly

This commit is contained in:
Zlatin Balevsky
2019-12-09 05:38:41 +00:00
parent 247c62bfb4
commit 086e27876d
2 changed files with 12 additions and 1 deletions

View File

@@ -389,6 +389,10 @@ public class Core {
saveMuSettings()
log.info("shutting down trust subscriber")
trustSubscriber.stop()
log.info("shutting down trust service")
trustService.stop()
log.info("shutting down persister service")
persisterService.stop()
log.info("shutting down download manager")
downloadManager.shutdown()
log.info("shutting down connection acceptor")
@@ -411,6 +415,8 @@ public class Core {
log.info("shutting down embedded router")
router.shutdown(0)
}
log.info("shutting down event bus");
eventBus.shutdown()
log.info("shutdown complete")
}

View File

@@ -2,6 +2,7 @@ package com.muwire.core
import java.util.concurrent.CopyOnWriteArrayList
import java.util.concurrent.Executor
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.logging.Level
@@ -12,7 +13,7 @@ import groovy.util.logging.Log
class EventBus {
private Map handlers = new HashMap()
private final Executor executor = Executors.newSingleThreadExecutor {r ->
private final ExecutorService executor = Executors.newSingleThreadExecutor {r ->
def rv = new Thread(r)
rv.setDaemon(true)
rv.setName("event-bus")
@@ -53,4 +54,8 @@ class EventBus {
log.info("Unregistering $handler for type $eventType")
handlers[eventType]?.remove(handler)
}
void shutdown() {
executor.shutdownNow()
}
}