■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50
レス数が1000を超えています。残念ながら全部は表示しません。 |
初心者もOK! FreeBSD質問スレッド その24
- 230 :名無しさん@お腹いっぱい。 :02/10/15 19:45
- select(2) について質問です。
select システムコールに2つのコネクション確立済みのTCP ソケットを渡し、
データが到着するのを待っていたとします。
たまたま、2つのTCP ソケットに同時にデータが到着し、select が2を返した
とします。
このあと、1つのTCP ソケットに対しては recv を行い、もう1つのソケットに
対しては、何もしないとします。
その後、また2つのTCP ソケットに対し、select した場合、まだデータを読み出して
いないソケットがあるので select は即時復帰してくれるのでしょうか?
sys_generic.c -> select() -> pollscan() -> fo_poll() って流れのような気がするの
ですが、ここで挫折しました。
カーネルの中で select 用に「ここまでは通知した」みたいなデータを持っているとは
思えないので、 recv をコールしていなければ、次回の select 時に再検出してくれそうな
気がするんですけど。
どないでしょう?
掲示板に戻る 全部 前100 次100 最新50read.cgi ver5.26+ (01/10/21-)