2012年1月31日9:34 Tomoyuki Chikanaga <nagachika00 / gmail.com>:
>
> Issue #5952 has been updated by Tomoyuki Chikanaga.
>
> Category set to core
>
> r29781 以降 Kernel#readlines (ARGF.readlines) で EOF を検出すると stdin を close するようになっていたようです。以下のようなサンプルで現象を確認できます。
>
> readlines.rb:
> p STDIN.closed?   # => false
> p readlines       # => []  <- Ctrl-D で EOF を送出
> p STDIN.closed?   # => true
> p readlines       # => []  <- すぐにかえってくる
>
> 1.9.2 では最後の STDIN.closed? は false のままで、2度目の readlines は入力を待ちます。
>
> ARGF.current_file が標準入力だったら close しないようにするととりあえずこの現象は直りました。これでどうでしょう。

経緯をよく分かっていないのですが、stdinはcloseしてはいけないけど、pipeはcloseしていいというのはなにか変な感じがします。一切closeしてはいけないのではないでしょうか