4

当我测试运行我正在处理的 Haskell 程序时,我将此错误打印到标准输出。它有时会在程序的相同运行中发生,而不是一直发生。

forkOS_entry: interrupted

程序中有一行调用mask_ $ forkIO启动另一个线程。我认为错误来自该线程。有没有办法我可以获得更好的错误消息或以某种方式抑制此错误消息?到底是怎么回事?无论如何,该程序似乎运行良好。

_ <- mask_ $ forkIO $ mapSSL cafilePath (icSSLWrapPort c) (icHostname c) (icPort c)

4

1 回答 1

1

我会检查async包的相关功能。在偶然发现 async 包之后,我发现这些函数在我的测试中使用起来更可靠一些。具体来说,在这种情况下可能有帮助的功能是

waitCatch :: Async a -> IO (Either SomeException a)

Marlow 的书是理解并发包的一个很好的参考。我希望参考有所帮助。如果您可以粘贴一个我可以测试的小示例代码,我也许可以发布经过测试的代码。

于 2014-03-10T02:43:16.267 回答