ごとうです

(あらすじ: pipe で子プロセスと通信するとき、
 親の書き込み側を close しないと返事が来ないという話し)

 > ええと,Filterの実装がわからないのでなんともいえないのですが,
 > 
 >   IO#sync=
 > 
 > ってのが助けになるのでは? 書き込むたびにバッファをフラッシュ
 > します.もっとも,向こう側が読み込んでくれないことにはこっち
 > でいくらフラッシュしても無駄無駄なわけですが.
 >
 >                                 まつもと ゆきひろ /:|)

お騒がせしました。
子プロセスで exec した job がフラッシュ
してないだけでした。 

とりあえず、各行を要素とする配列に貯めてから、 
コマンド名を引数にした関数を呼ぶことで
我慢することにしました。 
つまりその関数が呼ばれるたびに fork してしまう
わけです。

# もともとの問題はシェルスクリプトで
# cmd1 引数リスト | ... | cmdn 引数リスト | ruby hoge.rb 引数リスト
# などとするとき、このシェルスクリプトの引数の解釈を
# 書くのがめんどくさくて全部を ruby でやりたかったと
# いうだけだったので。
# このシェルスクリプトを呼ぶ wrapper を ruby で書く
# のもなんかカッコ悪いし…

-- ごとう