2011-01-02 14 views
1

FIFOで受信したイベントを待っているスレッドがあります。 ほとんどのイベントは、同じプロセス内の別のスレッドから送信される構成イベントです。 スレッドに割り込みイベントを処理できるようにしたいのですが、割り込みハンドラにFIFOへの書き込みが可能なのですか?割り込みハンドラがFIFOに書き込むことができます

FIFOを使用するのではなく、他の提案を歓迎します!

答えて

0

はい、できます。割り込みハンドラの使用は、非同期I/Oを扱う新しい方法の1つです。

more 典型的なの方法は、select、poll、またはLinuxのepollコマンドです。

イベントが利用可能になったときにコードを「中断する」よりもむしろ、これらの方がより好ましいと思われます。が完了したときにイベントを処理して「ポーリング」ループに戻ることができます。を前のイベントと関連付けます。これらのメカニズムは、同時に多数の異なるファイル記述子を待ち、使用可能なものを返すことができます。

割り込みハンドラはおそらくあなたがやりたいことではありません。なぜなら、あるイベントの処理中に中断したくないので別のものが準備完了であることを知るためです。もしあなたがしていれば、後で処理するためにリクエストを待ち行列に入れることになるでしょう。これはまさにpollとepollのはじまりです。

Linuxの場合、「epoll」が最適です。あなたがいない(またはPOSIX準拠を望む)場合は、 "poll"を使用してください。 "select"は "古い"メソッドであり、要求もキューに入れません。

関連する問題