黒田です。 >まつもと ゆきひろです > >|is_timeout = timeout(TimeOut){ >| body = http.read() >| cache.write(body) >|} >|- -- >| >|で、read か write を疑ったのですが TCPsocket な別の問題なのでしょ >|うか? > >もとの件はbusy waitですが,それとは別にwriteでブロックする可 >能性はあります.というのは書き込み前にselectで書き込み出来る >かどうかはチェックしているのですが,実際に書き込む時にはブロッ >クするかどうかのチェックまでは行っていないからです.普通のファ >イルが対象であれば書き込めればまずブロックしませんが,ソケッ >トの場合は向こうが応答しないなどの理由で,ブロックすることは >ありえますよね. あ、すみません、この例の cache.write は普通のファイルです。 is_timeout = timeout(TimeOut){ body = http.read() # ソケット cache.write(body) # ファイル client.write(body) # ソケット } でも起りますが。client は今のところ社内なので、応答しない頻度 は低いかなと思ってます。 - -- 黒田 淳 (くろだ じゅん)