未验证 提交 69883196 编写于 作者: C CharlieYu 提交者: GitHub

improvement: Optimized NioReactor stop() (Reactor Pattern) (#1930)

* Optimized NioReactor stop()

* Optimized ThreadPoolDispatcher stop()
上级 4dcc20b7
......@@ -96,9 +96,11 @@ public class NioReactor {
* @throws IOException if any I/O error occurs.
*/
public void stop() throws InterruptedException, IOException {
reactorMain.shutdownNow();
reactorMain.shutdown();
selector.wakeup();
reactorMain.awaitTermination(4, TimeUnit.SECONDS);
if (!reactorMain.awaitTermination(4, TimeUnit.SECONDS)) {
reactorMain.shutdownNow();
}
selector.close();
LOGGER.info("Reactor stopped");
}
......
......@@ -64,6 +64,8 @@ public class ThreadPoolDispatcher implements Dispatcher {
@Override
public void stop() throws InterruptedException {
executorService.shutdown();
executorService.awaitTermination(4, TimeUnit.SECONDS);
if (executorService.awaitTermination(4, TimeUnit.SECONDS)) {
executorService.shutdownNow();
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册