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の対処はしていません。 -- ごとうゆうぞう