Ruby Forum Ruby-dev > $B%9%l%C%ICf$N(B IO#flush $B$GI=<($,Mp$l$k(B

Posted by wanabe (Guest)
on 05.05.2008 09:45
(Received via mailing list)
$B%o%J%Y$H?=$7$^$9!#(B

$B%9%l%C%ICf$GJ8;z?t$,(B PIPE_BUF $B$N#2G\0J>e$NJ8;zNs$r(B
IO#flush $B$7$?>l9g!"J8;zNs$,ES@Z$l$k$3$H$,$"$j$^$9!#(B
$B$^$?F1MM$KJ8;z?t$,(B PIPE_BUF $B0J>e$NJ8;zNs$G$O(B
$B=PNO$KM>J,$JJ8;zNs$,$D$/$3$H$,$"$j$^$9!#(B
$B$-$A$s$HE,59(B flush $B$r$7$F$/$l$kC<Kv$G$O:F8=$7$^$;$s!#(B

$B6qBNE*$K$O!"0J2<$N$h$&$J%9%/%j%W%H$G5/$3$j$($^$9!#(B

Thread.new do
  print " "*2047 + "foo"
  STDOUT.flush
  print "."*1025
  STDOUT.flush
end
sleep 0.1

PIPE_BUF == 1024 $B$N<j85$N4D6-(B(Mingw + MSYS + rxvt)$B$G$O(B
$B6uGrNs!"(Bfoo$B!"%I%C%HNs$H$$$C$?=PNO$rF@$k$O$:$,(B
$B6uGrNs!"(Bf$B!"%I%C%HNs!"6uGrNs!"(Bf$B$H$$$&=PNO$K$J$C$F$7$^$$$^$9!#(B

$B:F8=$9$kC<Kv$,>/$J$$$H;W$$!"D9$a$K@bL@$5$;$F$$$?$@$-$^$7$?!#(B
$B$/$I$/$J$C$F$7$^$$?=$7Lu$"$j$^$;$s!#%Q%C%A$OC;$$$G$9!#(B

Index: io.c
===================================================================
--- io.c  (revision 16278)
+++ io.c  (working copy)
@@ -584,8 +584,8 @@
         return 0;
     }
     if (0 <= r) {
-        fptr->wbuf_off = r;
-        fptr->wbuf_len = r;
+        fptr->wbuf_off += r;
+        fptr->wbuf_len -= r;
         errno = EAGAIN;
     }
     if (rb_io_wait_writable(fptr->fd)) {