关机可能无限期停留: MainLoopCoordinator.Stop() 在 ReadFile 阻塞时等待输入线程,并且从未调用 WakePendingRead()

作者: Scripturd创建于 2026年9月7日更新于 2026年9月10日
标签bug

`MainLoopCoordinator.Stop()` 结束时,会调用无限循环的 `_inputTask?.Wait()`。它等待的输入线程可能已经停留在控制台输入句柄上的同步 `ReadFile` 中,而 `CancellationToken` 无法中断此操作。如果情况是这样,则应用程序的清除操作永远不会返回,进程将一直挂起,直到控制台上收到输入或进程被杀死。

内容来源: tui-cs/Terminal.Gui