問題タブ [poll-syscall]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
75 参照

c - poll() を強制的にエラーにする方法

poll() がエラーを返したときに、コードでシナリオをテストしようとしています。しかし、poll() に強制的にエラーを返す方法がわかりません。poll() を無期限にブロックして SIGINT を送信しようとしましたが、プロセスが停止するだけです。

poll() を取得してエラーを返す方法はありますか?

ありがとう。

0 投票する
1 に答える
75 参照

c - poll() の実行と同時に設定された待機中の pollfd から fd を削除します

ソケット fds のリストを監視し、POLLIN イベントを待機しています。

まず、配列に fds を追加し、この配列で poll() を実行します。さらに、場合によっては、この配列から fd を (閉じずに) 削除したいことがあります。また、poll() の実行と同時に発生する場合もあります。

poll() の開始時にわかったのは、カーネルが配列をキャッシュし、pollfds を待機しているため、すぐに fd を削除したことを認識できないということですよね?

eventfd() でウェイクアップ メカニズムを実装し、それを使用してスレッドをウェイクアップし、配列から fd を削除し、引き続き新しい配列で poll() を実行できることがわかりました。

まず、poll() の実行中に pollfds 配​​列から fd を削除するだけでは、poll() はすぐにわからないというのは正しいですか? そして、明確にするために、pollfds配列の待機からfdを削除するための別のメカニズム(ウェイクアップメカニズムを除く)があるかもしれません.poll()はすぐに中断されますか?