diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-18 18:06:51 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-09-18 18:06:51 +0000 |
commit | 94636e83dc72518ff26d18ce248bd9fa1f87c234 (patch) | |
tree | dfaa8e88e2cbb32c5846443c61bc9be1f60782ea | |
parent | 06c4c45f7f731bbf9adb214b2963760754a69f5d (diff) |
* io.c (io_fwrite): wrap the write system call by TRAP_BEG/TRAP_END to
enable signals when writing to a pipe which is full.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | io.c | 2 |
2 files changed, 7 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Mon Sep 19 03:02:08 2005 Tanaka Akira <akr@m17n.org> + + * io.c (io_fwrite): wrap the write system call by TRAP_BEG/TRAP_END to + enable signals when writing to a pipe which is full. + Sun Sep 18 02:10:47 2005 why the lucky stiff <why@ruby-lang.org> * lib/yaml/rubytypes.rb: remove comments that are bungling up @@ -437,7 +437,9 @@ io_fwrite(str, fptr) wsplit_p(fptr)) { l = PIPE_BUF; } + TRAP_BEG; r = write(fileno(f), RSTRING(str)->ptr+offset, l); + TRAP_END; if (r == n) return len; if (0 <= r) { offset += r; |