diff options
Diffstat (limited to 'src/main')
| -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 } } |
