mirror of
https://github.com/ruby/ruby.git
synced 2025-08-26 14:34:39 +02:00
* 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
This commit is contained in:
parent
4705fcc3c0
commit
2c9375ba69
4 changed files with 84 additions and 3 deletions
|
@ -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('.')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue