From df0d88eb8d3eef5f2fe351676ef1500e115e3131 Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Fri, 18 Jun 2010 15:59:19 -0700 Subject: [PATCH] Close wsgi responses correctly - the close method, if present, will be on the result of self.wsgi_application() and not on the list of output we're building up. --- tornado/wsgi.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tornado/wsgi.py b/tornado/wsgi.py index 181429cb..4aaa5fb7 100644 --- a/tornado/wsgi.py +++ b/tornado/wsgi.py @@ -219,11 +219,12 @@ class WSGIContainer(object): data["status"] = status data["headers"] = response_headers return response.append - response.extend(self.wsgi_application( - WSGIContainer.environ(request), start_response)) + app_response = self.wsgi_application( + WSGIContainer.environ(request), start_response) + response.extend(app_response) body = "".join(response) - if hasattr(response, "close"): - response.close() + if hasattr(app_response, "close"): + app_response.close() if not data: raise Exception("WSGI app did not call start_response") status_code = int(data["status"].split()[0])