From: nobu.nakada@... Date: 2002-09-22T01:29:04+09:00 Subject: [ruby-dev:18338] Re: rubicon on EWS4800 なかだです。 At Sun, 22 Sep 2002 01:12:02 +0900, Tanaka Akira wrote: > > そういやそうですね。これでどうかな? > > > @@ -190,4 +190,7 @@ rb_io_check_readable(fptr) > > ここで flush するってことは、read の直前にやるってことですよね。 > > 昔、 > http://www.ruby-lang.org/cgi-bin/ruby-bugs-ja/incoming?id=137 > に書きましたが、read する前だけじゃなくて、write する前にやる必要があ > ることがあるので、これじゃ足りないんじゃないかと思います。 たぶんバッファに先読みデータがないときにはfflush()が不要なこと を期待して。 Index: io.c =================================================================== RCS file: /cvs/ruby/src/ruby/io.c,v retrieving revision 1.159 diff -u -2 -p -r1.159 io.c --- io.c 17 Sep 2002 13:52:45 -0000 1.159 +++ io.c 21 Sep 2002 16:23:19 -0000 @@ -199,4 +202,7 @@ rb_io_check_writable(fptr) rb_raise(rb_eIOError, "not opened for writing"); } + if ((fptr->mode & FMODE_READABLE) && !fptr->f2 && READ_DATA_PENDING(fptr->f)) { + fflush(fptr->f); + } } -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦