我正在编写一个与某些库的 Haskell 绑定,并且有一个在内部void foo()调用的函数select()。当我从 Haskell 调用此函数时,该select()调用开始不断返回EINTR。这会混淆库代码并开始永远循环。
在#haskellIRC 频道中,我被告知foo()要从绑定线程中运行。我已经习惯runInBoundThread了,现在一切似乎都正常了。但在极少数情况下,我会Alarm clock在控制台中收到消息(好的,我发现这意味着应用程序捕获了 SIGALRM)。
我不确定这是处理这个问题的正确方法,我不想依赖Control.Concurrency. 我应该怎么办?