aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--io.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d4a339045b..9453b52f23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Mon May 5 20:07:59 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * io.c (io_fflush): IO#flush problem within threads. a patch from
+ <s.wanabe at gmail.com> in [ruby-dev:34595].
+
Mon May 5 19:58:44 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* compile.c (defined_expr): protect some expression from
diff --git a/io.c b/io.c
index 4c9a50d80a..6770b41e1c 100644
--- a/io.c
+++ b/io.c
@@ -584,8 +584,8 @@ io_fflush(rb_io_t *fptr)
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)) {