黒田です。

 >まつもと ゆきひろです
 >
 >|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 は今のところ社内なので、応答しない頻度
は低いかなと思ってます。
- --
黒田  淳 (くろだ じゅん)