From b0ce84cb9ec840d80b3e596961dac4154114584f Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Sat, 22 Aug 2026 09:10:27 +0200 Subject: End scanner immediatetly on cancellation on both the scanner and ScanHostTask --- src/main/java/com/it_jaros/jns/scan/Scanner.java | 2 +- src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/it_jaros/jns/scan/Scanner.java b/src/main/java/com/it_jaros/jns/scan/Scanner.java index 6608ee7..d9dfe47 100644 --- a/src/main/java/com/it_jaros/jns/scan/Scanner.java +++ b/src/main/java/com/it_jaros/jns/scan/Scanner.java @@ -61,7 +61,7 @@ public class Scanner implements AutoCloseable { * with whatever is there already */ private void runConsumerLoop(ProducerState state, Consumer consumer) { - while (state.running().get() || state.inPipeline().get() > 0) { + while (!cancelledToken.isCancelled() && (state.running().get() || state.inPipeline().get() > 0)) { PollState poll = getPollStateOfScanResult(state); switch (poll) { case PollState.Success(ScanResult value) -> consumer.accept(value); diff --git a/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java b/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java index 61add13..086a864 100644 --- a/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java +++ b/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java @@ -98,7 +98,7 @@ public class ScanHostTask implements Callable { * ONLY exception is when cancelled is set */ private void runConsumerLoop(ProducerState state) { - while (state.running().get() || state.inPipeline().get() > 0) { + while (!context.cancelledToken().isCancelled() && (state.running().get() || state.inPipeline().get() > 0)) { PollState poll = getPortResult(state); switch (poll) { case PollState.Success(PortResult value) -> accumulator.add(value); -- cgit v1.3.1