summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/plum/rack/connection.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/plum/rack/connection.rb b/lib/plum/rack/connection.rb
index 23314bd..cae7080 100644
--- a/lib/plum/rack/connection.rb
+++ b/lib/plum/rack/connection.rb
@@ -55,11 +55,15 @@ module Plum
r_headers, r_body = new_resp(@app.call(env))
if r_body.is_a?(::Rack::BodyProxy)
- stream.respond(r_headers, end_stream: false)
- r_body.each { |part|
- stream.send_data(part, end_stream: false)
- }
- stream.send_data(nil)
+ begin
+ stream.respond(r_headers, end_stream: false)
+ r_body.each { |part|
+ stream.send_data(part, end_stream: false)
+ }
+ stream.send_data(nil)
+ ensure
+ r_body.close
+ end
else
stream.respond(r_headers, r_body)
end