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