commit b38ac9bda18b619e9177db1a71b1370552a8a0c3
parent 8049d220c48b9baabfb01094d3ed5f8d39d5953a
Author: Matthias Jaros <jaros@mailbox.org>
Date: Fri, 3 Jul 2026 12:11:22 +0200
Adjusted shutdown logic.
Diffstat:
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
}
}