File tree Expand file tree Collapse file tree 1 file changed +15
-14
lines changed
lib/async/http/protocol/http1 Expand file tree Collapse file tree 1 file changed +15
-14
lines changed Original file line number Diff line number Diff line change @@ -64,21 +64,22 @@ def each(task: Task.current)
6464 task . annotate ( "Reading #{ self . version } requests for #{ self . class } ." )
6565
6666 while request = next_request
67- if body = request . body
68- finishable = Finishable . new ( body )
69- request . body = finishable
70- end
71-
72- response = yield ( request , self )
73- version = request . version
74- body = response &.body
75-
76- if hijacked?
77- body &.close
78- return
79- end
80-
67+ # We have received complete request (line + headers), so defer stop until the response is generated.
8168 task . defer_stop do
69+ if body = request . body
70+ finishable = Finishable . new ( body )
71+ request . body = finishable
72+ end
73+
74+ response = yield ( request , self )
75+ version = request . version
76+ body = response &.body
77+
78+ if hijacked?
79+ body &.close
80+ return
81+ end
82+
8283 # If a response was generated, send it:
8384 if response
8485 trailer = response . headers . trailer!
You can’t perform that action at this time.
0 commit comments