当我测试运行我正在处理的Haskell程序时,我将此错误打印到stdout。在程序的相同运行中,它有时会发生,而不是一直发生。
forkOS_entry: interrupted
程序中有一行调用mask_ $ forkIO
来启动另一个线程。我认为错误来自该线程。有没有办法可以获得更好的错误消息或以某种方式抑制此错误消息?到底是怎么回事?无论如何,该计划似乎运行良好。
_ <- mask_ $ forkIO $ mapSSL cafilePath (icSSLWrapPort c) (icHostname c) (icPort c)
答案 0 :(得分:1)
我会检查async包中的相关功能。在绊倒异步软件包之后,我发现函数在我的测试中使用起来更加可靠。具体来说,在这种情况下可能有用的功能是
waitCatch :: Async a -> IO (Either SomeException a)
Marlow book是理解并发包的一个很好的参考。我希望参考有所帮助。 如果您可以粘贴我可以测试的小样本代码,我可以发布测试代码。