Always attempt to set the Connection: close
response header
#429
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While working on #428, I pondered the idea that closing the connection should cause client-side complaints of broken connections. It looks like
Task.close_on_finish
is sometimes set to true alongside aConnection: close
header and other times not. If headers have not been written yet, it makes sense to always includeConnection: close
whenclose_on_finish
is set. This pull request adds a utility that sets both of these values together. This results in better connection handling for clients.There are a couple caveats:
Connection
already has a directive in the response headers, we will not set itThere is also not particularly simple way to ensure that people call this method correctly unless we want to introduce a property for this variable — but I'm not really into properties with side-effects.
I believe this change does not invalidate #428 but it does also resolve #427.