do not print stacktrace on clean shutdown

pull/5/head
Zlatin Balevsky 2019-06-17 21:58:44 +01:00
parent aef7533bd5
commit d5eb65bdc2
1 changed files with 14 additions and 7 deletions

View File

@ -19,6 +19,7 @@ class DirectoryWatcher {
private final EventBus eventBus
private final Thread watcherThread
private WatchService watchService
private volatile boolean shutdown
DirectoryWatcher(EventBus eventBus) {
this.eventBus = eventBus
@ -32,6 +33,7 @@ class DirectoryWatcher {
}
void stop() {
shutdown = true
watcherThread.interrupt()
watchService.close()
}
@ -45,15 +47,20 @@ class DirectoryWatcher {
StandardWatchEventKinds.ENTRY_DELETE)
}
private void watch() {
while(true) {
WatchKey key = watchService.take()
key.pollEvents().each {
if (it.kind() == StandardWatchEventKinds.ENTRY_MODIFY)
processModified(key.watchable(), it.context())
try {
while(!shutdown) {
WatchKey key = watchService.take()
key.pollEvents().each {
if (it.kind() == StandardWatchEventKinds.ENTRY_MODIFY)
processModified(key.watchable(), it.context())
}
key.reset()
}
key.reset()
} catch (InterruptedException e) {
if (!shutdown)
throw e
}
}