summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-03 12:11:22 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commit1adeb5bf802945ceae4fb7b82e2032bb2a57935a (patch)
tree78ccbcd25fb47b818415589662edf0f39637bf5a /src
parentbfca3c7aae27a22e040bde0c4e62a769af8b84f4 (diff)
Adjusted shutdown logic.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/it_jaros/jscanner/App.java11
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
}
}