From 3ba502d5f01a39b4adfd456ffc29f0f13c106267 Mon Sep 17 00:00:00 2001 From: kosaki Date: Mon, 4 Apr 2011 12:43:28 +0000 Subject: [PATCH] * io.c (rb_io_syswrite): While local FS writes are usually buffered, the buffers can be full or the file opened with O_SYNC. IO#syswrite can also be used on blocking IOs (pipe/socket) just like IO#write. The patch is written by Eric Wong. [ruby-core:35554] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ io.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 906434145f..6aaef9309a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Apr 4 21:41:26 2011 KOSAKI Motohiro + + * io.c (rb_io_syswrite): While local FS writes are usually + buffered, the buffers can be full or the file opened with + O_SYNC. IO#syswrite can also be used on blocking IOs + (pipe/socket) just like IO#write. + The patch is written by Eric Wong. [ruby-core:35554] + Mon Apr 4 11:50:40 2011 NAKAMURA Usaku * test/test_tempfile.rb: simply ignore platform depedent testcases diff --git a/io.c b/io.c index 331420097a..7ce7148627 100644 --- a/io.c +++ b/io.c @@ -3958,7 +3958,7 @@ rb_io_syswrite(VALUE io, VALUE str) rb_io_check_closed(fptr); } - n = write(fptr->fd, RSTRING_PTR(str), RSTRING_LEN(str)); + n = rb_write_internal(fptr->fd, RSTRING_PTR(str), RSTRING_LEN(str)); if (n == -1) rb_sys_fail_path(fptr->pathv);