diff options
author | delano <delano@solutious.com> | 2009-08-27 19:32:42 -0400 |
---|---|---|
committer | delano <delano@solutious.com> | 2009-08-27 19:33:42 -0400 |
commit | 0e5486eb89fedd5cf0c6ede30eebdc2be35222a4 (patch) | |
tree | 05dbc3a455755d76e56d6d4570093850c8fefe7a | |
parent | b1c5aa662d5a25b4c5987a9adff1c57a9091629e (diff) | |
download | net-ssh-0e5486eb89fedd5cf0c6ede30eebdc2be35222a4.tar.gz |
Quick argument fix for Net::SSH::Compat.io_select
-rw-r--r-- | lib/net/ssh/buffered_io.rb | 2 | ||||
-rw-r--r-- | lib/net/ssh/ruby_compat.rb | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/net/ssh/buffered_io.rb b/lib/net/ssh/buffered_io.rb index e48a8dc..15b13aa 100644 --- a/lib/net/ssh/buffered_io.rb +++ b/lib/net/ssh/buffered_io.rb @@ -110,7 +110,7 @@ module Net; module SSH def wait_for_pending_sends send_pending while output.length > 0 - result = Net::SSH::Compat.io_select(nil, [self]) or next + result = Net::SSH::Compat.io_select2(nil, [self]) or next next unless result[1].any? send_pending end diff --git a/lib/net/ssh/ruby_compat.rb b/lib/net/ssh/ruby_compat.rb index aa2e9c1..1042777 100644 --- a/lib/net/ssh/ruby_compat.rb +++ b/lib/net/ssh/ruby_compat.rb @@ -21,6 +21,9 @@ module Net; module SSH def self.io_select(read_array, write_array=nil, error_array=nil, timeout=nil) IO.select(read_array, write_array, error_array, timeout) end + def self.io_select2(read_array, write_array=nil) + IO.select(read_array, write_array) + end else SELECT_MUTEX = Mutex.new def self.io_select(read_array, write_array=nil, error_array=nil, timeout=nil) @@ -28,6 +31,11 @@ module Net; module SSH IO.select(read_array, write_array, error_array, timeout) end end + def self.io_select2(read_array, write_array=nil) + SELECT_MUTEX.synchronize do + IO.select(read_array, write_array) + end + end end end |