summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordelano <delano@solutious.com>2009-08-27 19:32:42 -0400
committerdelano <delano@solutious.com>2009-08-27 19:33:42 -0400
commit0e5486eb89fedd5cf0c6ede30eebdc2be35222a4 (patch)
tree05dbc3a455755d76e56d6d4570093850c8fefe7a
parentb1c5aa662d5a25b4c5987a9adff1c57a9091629e (diff)
downloadnet-ssh-0e5486eb89fedd5cf0c6ede30eebdc2be35222a4.tar.gz
Quick argument fix for Net::SSH::Compat.io_select
-rw-r--r--lib/net/ssh/buffered_io.rb2
-rw-r--r--lib/net/ssh/ruby_compat.rb8
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