mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-10-04 00:00:37 -04:00
logging when connections are deregistered from the selector/pool
also, logging when a response is fetched in the session
This commit is contained in:
parent
bf62cd92e1
commit
4e870b19e0
@ -35,6 +35,10 @@ module HTTPX
|
|||||||
@resolvers.each { |r| r.__send__(__method__, s) }
|
@resolvers.each { |r| r.__send__(__method__, s) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def log(*args, **kwargs, &blk)
|
||||||
|
@resolvers.each { |r| r.__send__(__method__, *args, **kwargs, &blk) }
|
||||||
|
end
|
||||||
|
|
||||||
def closed?
|
def closed?
|
||||||
@resolvers.all?(&:closed?)
|
@resolvers.all?(&:closed?)
|
||||||
end
|
end
|
||||||
|
@ -136,6 +136,9 @@ module HTTPX
|
|||||||
alias_method :select_resolver, :select_connection
|
alias_method :select_resolver, :select_connection
|
||||||
|
|
||||||
def deselect_connection(connection, selector, cloned = false)
|
def deselect_connection(connection, selector, cloned = false)
|
||||||
|
connection.log(level: 2) do
|
||||||
|
"deregistering connection##{connection.object_id}(#{connection.state}) from selector##{selector.object_id}"
|
||||||
|
end
|
||||||
selector.deregister(connection)
|
selector.deregister(connection)
|
||||||
|
|
||||||
# when connections coalesce
|
# when connections coalesce
|
||||||
@ -145,14 +148,19 @@ module HTTPX
|
|||||||
|
|
||||||
return if @closing && connection.state == :closed
|
return if @closing && connection.state == :closed
|
||||||
|
|
||||||
|
connection.log(level: 2) { "check-in connection##{connection.object_id}(#{connection.state}) in pool##{@pool.object_id}" }
|
||||||
@pool.checkin_connection(connection)
|
@pool.checkin_connection(connection)
|
||||||
end
|
end
|
||||||
|
|
||||||
def deselect_resolver(resolver, selector)
|
def deselect_resolver(resolver, selector)
|
||||||
|
resolver.log(level: 2) do
|
||||||
|
"deregistering resolver##{resolver.object_id}(#{resolver.state}) from selector##{selector.object_id}"
|
||||||
|
end
|
||||||
selector.deregister(resolver)
|
selector.deregister(resolver)
|
||||||
|
|
||||||
return if @closing && resolver.closed?
|
return if @closing && resolver.closed?
|
||||||
|
|
||||||
|
resolver.log(level: 2) { "check-in resolver##{resolver.object_id}(#{resolver.state}) in pool##{@pool.object_id}" }
|
||||||
@pool.checkin_resolver(resolver)
|
@pool.checkin_resolver(resolver)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -221,7 +229,11 @@ module HTTPX
|
|||||||
def fetch_response(request, _selector, _options)
|
def fetch_response(request, _selector, _options)
|
||||||
response = request.response
|
response = request.response
|
||||||
|
|
||||||
response if response && response.finished?
|
return unless response && response.finished?
|
||||||
|
|
||||||
|
log(level: 2) { "response fetched" }
|
||||||
|
|
||||||
|
response
|
||||||
end
|
end
|
||||||
|
|
||||||
# sends the +request+ to the corresponding HTTPX::Connection
|
# sends the +request+ to the corresponding HTTPX::Connection
|
||||||
@ -382,13 +394,15 @@ module HTTPX
|
|||||||
end
|
end
|
||||||
|
|
||||||
def find_resolver_for(connection, selector)
|
def find_resolver_for(connection, selector)
|
||||||
resolver = selector.find_resolver(connection.options)
|
if (resolver = selector.find_resolver(connection.options))
|
||||||
|
resolver.log(level: 2) { "found resolver##{connection.object_id}(#{connection.state}) in selector##{selector.object_id}" }
|
||||||
|
return resolver
|
||||||
|
end
|
||||||
|
|
||||||
unless resolver
|
|
||||||
resolver = @pool.checkout_resolver(connection.options)
|
resolver = @pool.checkout_resolver(connection.options)
|
||||||
|
resolver.log(level: 2) { "found resolver##{connection.object_id}(#{connection.state}) in pool##{@pool.object_id}" }
|
||||||
resolver.current_session = self
|
resolver.current_session = self
|
||||||
resolver.current_selector = selector
|
resolver.current_selector = selector
|
||||||
end
|
|
||||||
|
|
||||||
resolver
|
resolver
|
||||||
end
|
end
|
||||||
@ -399,7 +413,10 @@ module HTTPX
|
|||||||
unless conn1.coalescable?(conn2)
|
unless conn1.coalescable?(conn2)
|
||||||
conn2.log(level: 2) { "not coalescing with conn##{conn1.object_id}[#{conn1.origin}])" }
|
conn2.log(level: 2) { "not coalescing with conn##{conn1.object_id}[#{conn1.origin}])" }
|
||||||
select_connection(conn2, selector)
|
select_connection(conn2, selector)
|
||||||
@pool.checkin_connection(conn1) if from_pool
|
if from_pool
|
||||||
|
conn1.log(level: 2) { "check-in connection##{conn1.object_id}(#{conn1.state}) in pool##{@pool.object_id}" }
|
||||||
|
@pool.checkin_connection(conn1)
|
||||||
|
end
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user