ghci :恢复中断的任务

ghci : resume an interrupted task

在 emacs repl 中,我有 ghci 运行。

如果我按 C-c C-c,它会中断一些 forever IO,并显示

λ> server1
Listening on port 4444Accepted connection from localhost: 57441
Accepted connection from localhost: 57444
Accepted connection from localhost: 57447
Interrupted.

我找不到如何恢复程序。

如评论所述,您无法在此处 "resume" 执行任务。发生的事情是您发出了一个信号,该信号变成了运行时异常。此异常终止了线程。您可以重新启动一个新任务,但该线程没有 "catch and suspend".

的机制

您可以添加这样的机制——例如将您的服务器线程创建为单独的线程以及 "resume" MVar,然后让它捕获异常信号,然后阻止关于阅读 MVar.