summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--io.c1
-rw-r--r--test/ruby/test_io.rb8
2 files changed, 9 insertions, 0 deletions
diff --git a/io.c b/io.c
index 99513573d7..2fe092b84e 100644
--- a/io.c
+++ b/io.c
@@ -8407,6 +8407,7 @@ rb_io_init_copy(VALUE dest, VALUE io)
fptr->encs = orig->encs;
fptr->pid = orig->pid;
fptr->lineno = orig->lineno;
+ fptr->timeout = orig->timeout;
if (!NIL_P(orig->pathv)) fptr->pathv = orig->pathv;
fptr_copy_finalizer(fptr, orig);
diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb
index 0c8beb2f95..989c4c8991 100644
--- a/test/ruby/test_io.rb
+++ b/test/ruby/test_io.rb
@@ -1441,6 +1441,14 @@ class TestIO < Test::Unit::TestCase
End
end
+ def test_dup_timeout
+ with_pipe do |r, w|
+ r.timeout = 0.1
+ r2 = r.dup
+ assert_equal(0.1, r2.timeout)
+ end
+ end
+
def test_inspect
with_pipe do |r, w|
assert_match(/^#<IO:fd \d+>$/, r.inspect)