ソケット fds のリストを監視し、POLLIN イベントを待機しています。
まず、配列に fds を追加し、この配列で poll() を実行します。さらに、場合によっては、この配列から fd を (閉じずに) 削除したいことがあります。また、poll() の実行と同時に発生する場合もあります。
poll() の開始時にわかったのは、カーネルが配列をキャッシュし、pollfds を待機しているため、すぐに fd を削除したことを認識できないということですよね?
eventfd() でウェイクアップ メカニズムを実装し、それを使用してスレッドをウェイクアップし、配列から fd を削除し、引き続き新しい配列で poll() を実行できることがわかりました。
まず、poll() の実行中に pollfds 配列から fd を削除するだけでは、poll() はすぐにわからないというのは正しいですか? そして、明確にするために、pollfds配列の待機からfdを削除するための別のメカニズム(ウェイクアップメカニズムを除く)があるかもしれません.poll()はすぐに中断されますか?