次のように、Webでエッジトリガーepoll関数に関するドキュメントを読みました。
1. The file descriptor that represents the read side of a pipe (rfd) is registered on the epoll instance.
2. A pipe writer writes 2 kB of data on the write side of the pipe.
3. A call to epoll_wait(2) is done that will return rfd as a ready file descriptor.
4. The pipe reader reads 1 kB of data from rfd.
5. A call to epoll_wait(2) is done.
.......
.......
epollをエッジトリガー(EPOLLET)インターフェイスとして使用するための推奨される方法は、次のとおりです。i)非ブロッキングファイル記述子を使用します。ii)read(2)またはwrite(2)がEAGAINを返した後でのみ、イベントに対してepoll_waitを呼び出します。
2は理解しましたが、非ブロッキングファイル記述子が使用される理由がわかりませんでした。
非ブロッキングファイル記述子が使用される理由を誰かが説明できますか?レベルでトリガーされるepoll関数でブロッキングファイル記述子を使用しても問題ないのはなぜですか?