2011-08-14 11 views
28

のepollに2つの機能がありますepollはスレッドセーフですか?

  1. epoll_ctl
  2. がepoll_waitが

です私は同じepoll_fdを使用し、それらスレッドセーフ?
あるスレッドがepoll_waitを呼び出し、他のスレッドがepoll_ctlを同時に呼び出すとどうなりますか?

+1

同じepoll_fdを使用していますか? –

+0

はい、私は同じepoll_fdを使用します。 – atomd

+0

あなたの使い方についてもっと詳しく教えてもらえますか?なぜあなたは同じepoll fdを使わなければならないのですか? RX/TX構造をしている場合は、1つのepoll fdをINイベントに対応させ、1つをoutイベントに対応させることができます(これは私がいくつかのアプリケーションで使用するものです)。 –

答えて

18

それはスレッドセーフですが、そこに明示することを述べてあまりのドキュメントではありません - あなたはまた、単一epoll_fdで待機している複数のスレッドを持つことができ、BTW http://linux.derkeiler.com/Mailing-Lists/Kernel/2006-03/msg00084.html

を参照してくださいが、その場合には、それは得ることができます(EPOLLET)またはワンショットモード(EPOLLONESHOT)を使用したい場合があります - http://linux.die.net/man/2/epoll_ctlを参照してください)

関連する問題