1

ネットワーク接続管理用の aysnc スレッドプール モデルがあります。poll() を呼び出し続ける単一のディスパッチャ スレッドと、poll() がそのように示すと読み取り/書き込みを行うワーカー スレッド プール。

poll() がソケットが読み取り可能であることを示している場合を考えてみましょう。しかし、ワーカー スレッドはまだ読み取りを処理していません。ワーカー スレッドが読み取りを処理していない間、読み取りポーリングを無効にします。これで、リモート側が切断され、poll() は POLLERR/POLLHUP で戻ります。この後、ワーカー スレッドが read() を呼び出すとどうなりますか?

まだ読み取られていないデータがある場合でも、read() は <0 を返しますか? または

ソケットに POLLERR/POLLHUP があったとしても、read() はネットワークからデータを読み取りますか?

4

1 に答える 1