changed the callback for the parser (not closing, but completing), closing to be handled at a later time

This commit is contained in:
HoneyryderChuck 2018-02-24 00:02:08 +00:00
parent d0ffbfd01c
commit 1f6862f3f2
4 changed files with 12 additions and 8 deletions

View File

@ -172,8 +172,14 @@ module HTTPX
def build_parser(protocol = @io.protocol)
parser = registry(protocol).new(@write_buffer, @options)
parser.inherit_callbacks(self)
parser.on(:close) { throw(:close, self) }
parser.on(:response) do |*args|
emit(:response, *args)
end
parser.on(:promise) do |*args|
emit(:promise, *args)
end
# parser.inherit_callbacks(self)
parser.on(:complete) { throw(:close, self) }
parser
end

View File

@ -146,8 +146,7 @@ module HTTPX
# 1 keep alive request.
@max_concurrent_requests = 1
end
log(2) { "connection: close" }
emit(:close)
emit(:complete)
end
private

View File

@ -170,8 +170,7 @@ module HTTPX
def on_close(*)
return unless @connection.state == :closed && @connection.active_stream_count.zero?
log { "connection closed" }
emit(:close)
emit(:complete)
end
def on_frame_sent(frame)

View File

@ -34,7 +34,7 @@ module HTTPX
return if @io.closed?
@parser = ConnectProxyParser.new(@write_buffer, @options.merge(max_concurrent_requests: 1))
@parser.once(:response, &method(:on_connect))
@parser.on(:close) { throw(:close, self) }
@parser.on(:complete) { throw(:close, self) }
proxy_connect
return if @state == :open
when :open
@ -45,7 +45,7 @@ module HTTPX
when :idle
@parser = ProxyParser.new(@write_buffer, @options)
@parser.inherit_callbacks(self)
@parser.on(:close) { throw(:close, self) }
@parser.on(:complete) { throw(:close, self) }
end
end
super