summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-02 05:20:02 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-02 05:20:02 +0000
commitf0d8be4e2bac9d46126bbc43650e3a0e030da252 (patch)
tree62755414f35a418db75584cfdc381a8ec278ca38 /io.c
parent145ecb687200b619f58561d33cac420ba91733f3 (diff)
io.c: get rid of race condition
* io.c (rb_io_close_write): detach tied IO for writing before closing to get rid of race condition. [ruby-list:49598] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/io.c b/io.c
index 053d34f931..15fc799d69 100644
--- a/io.c
+++ b/io.c
@@ -4492,12 +4492,12 @@ rb_io_close_write(VALUE io)
rb_raise(rb_eIOError, "closing non-duplex IO for writing");
}
- rb_io_close(write_io);
if (io != write_io) {
GetOpenFile(io, fptr);
fptr->tied_io_for_writing = 0;
fptr->mode &= ~FMODE_DUPLEX;
}
+ rb_io_close(write_io);
return Qnil;
}