jscanner

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit b38ac9bda18b619e9177db1a71b1370552a8a0c3
parent 8049d220c48b9baabfb01094d3ed5f8d39d5953a
Author: Matthias Jaros <jaros@mailbox.org>
Date:   Fri,  3 Jul 2026 12:11:22 +0200

Adjusted shutdown logic.

Diffstat:
Msrc/main/java/com/it_jaros/jscanner/App.java | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/it_jaros/jscanner/App.java b/src/main/java/com/it_jaros/jscanner/App.java @@ -5,14 +5,13 @@ import java.util.BitSet; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import java.util.stream.Collectors; public class App { private static Thread shutdownHook; private static final CountDownLatch shutdownLatch = new CountDownLatch(1); - private static final int shutdownTimeoutInMillis = 10000; + private static final int shutdownTimeoutInMillis = 5000; public static void main(String[] args) { try { @@ -99,7 +98,7 @@ public class App { */ private static void addShutdownHook(Scanner scanner) { shutdownHook = new Thread(() -> { - System.err.printf("%nCtrl-C received. Shutting down... Waiting for timeout of %d seconds%n", shutdownTimeoutInMillis / 1000); + System.err.printf("%nCtrl-C received. Shutting down...%n"); shutdown(scanner); }); Runtime.getRuntime().addShutdownHook(shutdownHook); @@ -114,11 +113,13 @@ public class App { private static void shutdown(Scanner scanner) { try { scanner.cancel(); - scanner.awaitTermination(Duration.ofMillis(shutdownTimeoutInMillis)); + if (!scanner.awaitTermination(Duration.ofMillis(shutdownTimeoutInMillis))) { + scanner.cancelNow(); + } shutdownLatch.await(shutdownTimeoutInMillis, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { Thread.currentThread().interrupt(); - } catch (TimeoutException e) { + } catch (Exception e) { // Time ran out } }