diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/com/it_jaros/jns/CliPrinter.java | 4 | ||||
| -rw-r--r-- | src/main/java/com/it_jaros/jns/scan/engine/CompletionConsumer.java | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/main/java/com/it_jaros/jns/CliPrinter.java b/src/main/java/com/it_jaros/jns/CliPrinter.java index fa2929d..e3ced2f 100644 --- a/src/main/java/com/it_jaros/jns/CliPrinter.java +++ b/src/main/java/com/it_jaros/jns/CliPrinter.java @@ -149,7 +149,9 @@ public class CliPrinter { public void stop() { ui.shutdown(); try { - ui.awaitTermination(1, TimeUnit.SECONDS); + if (!ui.awaitTermination(1, TimeUnit.SECONDS)) { + ui.shutdownNow(); + } } catch (InterruptedException ignored) { Thread.currentThread().interrupt(); } diff --git a/src/main/java/com/it_jaros/jns/scan/engine/CompletionConsumer.java b/src/main/java/com/it_jaros/jns/scan/engine/CompletionConsumer.java index 2dfedf5..252a246 100644 --- a/src/main/java/com/it_jaros/jns/scan/engine/CompletionConsumer.java +++ b/src/main/java/com/it_jaros/jns/scan/engine/CompletionConsumer.java @@ -26,7 +26,11 @@ public class CompletionConsumer<T> { */ public void runConsumerLoop(Consumer<PollState<T>> consumer) { while (!cancelledToken.isCancelled() && (state.running().get() || state.inPipeline().get() > 0)) { - consumer.accept(getPollResult()); + PollState<T> pollResult = getPollResult(); + if (Thread.currentThread().isInterrupted()) { + break; + } + consumer.accept(pollResult); } } |
