libev/epollの奇妙な動作

libev/epollの奇妙な動作

libev経由でepollを使用していますが、奇妙な動作が発生しました。

読み取り可能なイベントを受け取りましたが、ファイル記述子からすべてのデータを読み取ることができなかったとします。 libevはレベルトリガを使用するため、読み取りイベントを引き続き受信する必要があります。

記述子でしか読めない場合も同様です。しかし、私も書けば問題が生じるだろう。

つまり、読み取りイベントを受け取り、ディスクリプタから一部のデータを読み取り、ディスクリプタにいくつかのコンテンツを書き込みます。その後、この記述子に新しいデータが表示されるまで、読み取りイベントは受信されなくなります。

この動作がどこかに文書化されているかどうか疑問に思います。それともこれはLinuxのバグですか?

関連情報