In message <87fyupzgcq.fsf / m17n.org>,
 `Tanaka Akira <akr / m17n.org>' wrote:
> えぇと、試してなくて勘違いだったら申し訳ないのですが、nonblocking mode
> で 1.8 の IO#read が 1byte も読めない場合には EAGAIN を発生するので、
> それを rescue して IO.select で待つという実装が必要だと思うのですが、
> どうも見つけられません。

うう、そういう違いもあるのですか。
再現させてみようと思って、[ruby-dev:26477]のスクリプトに

 % ruby -rsocket -e 'TCPSocket.open("localhost", 10080) {|s| sleep }'

このようなクライアントで接続してktraceの出力を眺めてみると
select(2)を繰り返すものの、read(2)している気配がありません。
明示的にIO.selectを呼んだほういいのでしょうか。

そもそも再現のさせ方が違うんじゃないかという気もしますが。

> すでにそのようにコーディングされているというのは本当でしょうか?

EAGAINの対処はしていません。

-- 
ごとうゆうぞう