diff --git a/aio-pro/src/main/java/org/smartboot/socket/transport/Worker.java b/aio-pro/src/main/java/org/smartboot/socket/transport/Worker.java index 733591d9c356d3b6e8d1eed869ece6fce1719c35..a442ec715758d2d31aa041a463bab21732764ef9 100644 --- a/aio-pro/src/main/java/org/smartboot/socket/transport/Worker.java +++ b/aio-pro/src/main/java/org/smartboot/socket/transport/Worker.java @@ -183,6 +183,9 @@ public final class Worker implements Runnable { return true; } + private static final Long timeout = 1000L; + + private static final TimeUnit timeUnit = TimeUnit.MILLISECONDS; void shutdown() { try { @@ -192,10 +195,13 @@ public final class Worker implements Runnable { } selector.wakeup(); executorService.shutdown(); + try { + executorService.awaitTermination(timeout, timeUnit); + } catch (InterruptedException ignored) { } try { selector.close(); } catch (IOException e) { - throw new RuntimeException(e); + e.printStackTrace(); } } } \ No newline at end of file