前田です。 Tanaka Akira wrote: >>readを1.9と同じ挙動にした上で、Socketはデフォルトでnon-blocking >>modeにしてしまってはどうでしょうか。 > > > 1.9 の IO#read を変えたのは私ですが、私としては 1.8 には代替案と警告を > 入れて移行期間にするというスケジュールを考えていました。 > > 代替案と警告を入れるというのは [ruby-dev:25430] ですが、そのときには警 > 告に反対する人がいたので、まして挙動を変えるというなら反対する人が存在 > するであろうことは想像に難くありません。 > > なので、変えるんならそういう人に対するケアは必要でしょうね。 では、1.8では移行措置として、 * socketはデフォルトでnon-blocking modeにする。 * readの挙動も1.9と同様にする。 (今の1.8の仕様では、non-blocking modeにすることによる挙動の違いが 大きいため) * ただし、ユーザが明示的にnon-blocking modeにした場合は、readの挙動 を現状の1.8と同じ(読めるだけのデータをすぐに返し、single thread では読めるデータがない場合にはEAGAINを発生)にする。 というのはどうでしょう。 -- 前田 修吾