私はいくつかのライブラリへのHaskellバインディングを書いています、そしてその中void foo()に呼び出す関数がありますselect()。Haskellからこの関数を呼び出すと、そのselect()呼び出しは常に戻り始めEINTRます。これはライブラリコードを混乱させ、永久にループを開始します。
#haskellIRCチャネルでは、バインドされたスレッドから実行するように指示されていますfoo()。私はこれに使用runInBoundThreadしましたが、今ではすべてが機能しているようです。しかし、まれAlarm clockにコンソールにメッセージが表示されることがあります(わかりました、アプリがSIGALRMをキャッチすることを意味します)。
この問題を処理する適切な方法がわからないので、に依存したくありませんControl.Concurrency。私は何をすべきか?