diff options
| author | 2026-07-03 12:11:22 +0200 | |
|---|---|---|
| committer | 2026-07-09 09:59:28 +0200 | |
| commit | 1adeb5bf802945ceae4fb7b82e2032bb2a57935a (patch) | |
| tree | 78ccbcd25fb47b818415589662edf0f39637bf5a /src | |
| parent | bfca3c7aae27a22e040bde0c4e62a769af8b84f4 (diff) | |
Adjusted shutdown logic.
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/App.java | 11 |
1 files 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 index 0e579ea..8fa3cca 100644 --- 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 } } |
