diff options
author | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-12 11:36:06 +0000 |
---|---|---|
committer | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-09-12 11:36:06 +0000 |
commit | 2c9375ba69c5bfba56e8cc1ab4ac7c2ff01d24f3 (patch) | |
tree | c4555ba6c22779df7b80a2a217e01fe59bf87982 /test/-ext- | |
parent | 4705fcc3c0df0d4f389aff690852356b8d2fd317 (diff) | |
download | ruby-2c9375ba69c5bfba56e8cc1ab4ac7c2ff01d24f3.tar.gz |
* thread.c (rb_thread_select): fix to ignore an argument
modification of rb_thread_fd_select().
based on a patch by Eric Wong. [Bug #5306] [ruby-core:39435]
* thread.c (rb_fd_rcopy): New. for reverse fd copy.
* test/-ext-/old_thread_select/test_old_thread_select.rb
(test_old_select_false_positive): test for bug5306.
* ext/-test-/old_thread_select/old_thread_select.c (fdset2array):
New. convert fdsets to array.
* ext/-test-/old_thread_select/old_thread_select.c (old_thread_select):
return 'read', 'write', 'except' argument of rb_thread_select()
to ruby script.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/-ext-')
-rw-r--r-- | test/-ext-/old_thread_select/test_old_thread_select.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/-ext-/old_thread_select/test_old_thread_select.rb b/test/-ext-/old_thread_select/test_old_thread_select.rb index b40f3a429b..b70e1d3862 100644 --- a/test/-ext-/old_thread_select/test_old_thread_select.rb +++ b/test/-ext-/old_thread_select/test_old_thread_select.rb @@ -34,6 +34,20 @@ class TestOldThreadSelect < Test::Unit::TestCase end end + def test_old_select_false_positive + bug5306 = '[ruby-core:39435]' + with_pipe do |r2, w2| + with_pipe do |r, w| + t0 = Time.now + w.syswrite '.' + rfds = [ r.fileno, r2.fileno ] + rc = IO.old_thread_select(rfds, nil, nil, nil) + assert_equal [ r.fileno ], rfds, bug5306 + assert_equal 1, rc, bug5306 + end + end + end + def test_old_select_read_write_check with_pipe do |r, w| w.syswrite('.') |