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