2013-07-09 21 views
4

我收到这个错误打印到标准输出,当我测试运行我正在运行一个Haskell程序。有时候,并不是所有的时间都发生在程序的相同运行中。forkOS_entry:中断的错误:这是什么?

forkOS_entry: interrupted 

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

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

回答

1

我会检查async包相关的功能。在遇到异步包之后,我发现这些函数对于我的测试更加可靠。具体而言,可能在这种情况下,帮助功能将

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

Marlow book是理解并发包一个很好的参考。我希望参考文献有所帮助。 如果您可以粘贴我可以测试的小样本代码,我可能会发布测试代码。