mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-08-10 00:01:27 -04:00
do not use the select_one variant for ruby 2.1, as there is a deadlock on ssl connect that is triggered in a test
This commit is contained in:
parent
ed23525daf
commit
4997548d95
@ -69,6 +69,9 @@ Style/TrailingCommaInArguments:
|
||||
Style/TrailingUnderscoreVariable:
|
||||
Enabled: false
|
||||
|
||||
Style/AccessModifierDeclarations:
|
||||
Enabled: false
|
||||
|
||||
Performance/TimesMap:
|
||||
Enabled: false
|
||||
|
||||
|
6
Gemfile
6
Gemfile
@ -40,7 +40,11 @@ end
|
||||
|
||||
gem "hanna-nouveau", require: false
|
||||
gem "faraday", :require => false
|
||||
gem "pry", :require => false
|
||||
if RUBY_VERSION < "2.2"
|
||||
gem "pry", "~> 0.12.2", :require => false
|
||||
else
|
||||
gem "pry", :require => false
|
||||
end
|
||||
|
||||
gem "minitest", require: false
|
||||
gem "minitest-proveit", require: false
|
||||
|
@ -61,12 +61,13 @@ class HTTPX::Selector
|
||||
monitor
|
||||
end
|
||||
|
||||
# waits for read/write events for +interval+. Yields for monitors of
|
||||
# selected IO objects.
|
||||
# Closes the selector.
|
||||
#
|
||||
def select(interval, &block)
|
||||
return select_one(interval, &block) if @selectables.size == 1
|
||||
def close; end
|
||||
|
||||
private
|
||||
|
||||
def select_many(interval)
|
||||
begin
|
||||
r = nil
|
||||
w = nil
|
||||
@ -102,12 +103,6 @@ class HTTPX::Selector
|
||||
end if writers
|
||||
end
|
||||
|
||||
# Closes the selector.
|
||||
#
|
||||
def close; end
|
||||
|
||||
private
|
||||
|
||||
def select_one(interval)
|
||||
io, monitor = @selectables.first
|
||||
|
||||
@ -128,4 +123,23 @@ class HTTPX::Selector
|
||||
rescue IOError, SystemCallError
|
||||
@selectables.reject! { |ios, _| ios.closed? }
|
||||
end
|
||||
|
||||
# waits for read/write events for +interval+. Yields for monitors of
|
||||
# selected IO objects.
|
||||
#
|
||||
if RUBY_VERSION < "2.2" || RUBY_ENGINE == "jruby"
|
||||
|
||||
alias_method :select, :select_many
|
||||
|
||||
else
|
||||
|
||||
def select(interval, &block)
|
||||
return select_one(interval, &block) if @selectables.size == 1
|
||||
|
||||
select_many(interval, &block)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
public :select
|
||||
end
|
||||
|
@ -135,8 +135,8 @@ module ResolverHelpers
|
||||
def self.extended(obj)
|
||||
obj.singleton_class.class_eval do
|
||||
attr_reader :queries
|
||||
public :parse # rubocop:disable Style/AccessModifierDeclarations
|
||||
public :resolve # rubocop:disable Style/AccessModifierDeclarations
|
||||
public :parse
|
||||
public :resolve
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user