summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-11-17 04:41:19 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-11-17 04:41:19 +0000
commit21efb309e7bd3985647d806b1ef7969c16afba02 (patch)
tree371de1c897ff6129461e048a07f95462a3d8cd2e /io.c
parent46608d361a199ee96ce71043d03d5e2dbed3cf66 (diff)
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/io.c b/io.c
index 6470788fce..42234bfb6b 100644
--- a/io.c
+++ b/io.c
@@ -208,8 +208,13 @@ io_fflush(f, path)
FILE *f;
const char *path;
{
+ int n;
+
rb_thread_fd_writable(fileno(f));
- if (fflush(f) == EOF) rb_sys_fail(path);
+ TRAP_BEG;
+ n = fflush(f);
+ TRAP_END;
+ if (n == EOF) rb_sys_fail(path);
}
/* writing functions */
@@ -1050,9 +1055,6 @@ rb_io_close(io)
OpenFile *fptr;
fptr = RFILE(io)->fptr;
- if (fptr->mode & FMODE_WRITABLE) {
- rb_io_flush(io);
- }
rb_io_fptr_close(fptr);
if (fptr->pid) {
rb_syswait(fptr->pid);