diff --git a/gunicorn/workers/base_async.py b/gunicorn/workers/base_async.py index 0b7d6570..ec5d7644 100644 --- a/gunicorn/workers/base_async.py +++ b/gunicorn/workers/base_async.py @@ -109,17 +109,15 @@ class AsyncWorker(base.Worker): if self.is_already_handled(respiter): return False try: - try: - if isinstance(respiter, environ['wsgi.file_wrapper']): - resp.write_file(respiter) - else: - for item in respiter: - resp.write(item) - resp.close() - finally: - request_time = datetime.now() - request_start - self.log.access(resp, req, environ, request_time) + if isinstance(respiter, environ['wsgi.file_wrapper']): + resp.write_file(respiter) + else: + for item in respiter: + resp.write(item) + resp.close() finally: + request_time = datetime.now() - request_start + self.log.access(resp, req, environ, request_time) if hasattr(respiter, "close"): respiter.close() if resp.should_close(): diff --git a/gunicorn/workers/gthread.py b/gunicorn/workers/gthread.py index dab22fb1..9a6ad006 100644 --- a/gunicorn/workers/gthread.py +++ b/gunicorn/workers/gthread.py @@ -333,18 +333,16 @@ class ThreadWorker(base.Worker): respiter = self.wsgi(environ, resp.start_response) try: - try: - if isinstance(respiter, environ['wsgi.file_wrapper']): - resp.write_file(respiter) - else: - for item in respiter: - resp.write(item) + if isinstance(respiter, environ['wsgi.file_wrapper']): + resp.write_file(respiter) + else: + for item in respiter: + resp.write(item) - resp.close() - finally: - request_time = datetime.now() - request_start - self.log.access(resp, req, environ, request_time) + resp.close() finally: + request_time = datetime.now() - request_start + self.log.access(resp, req, environ, request_time) if hasattr(respiter, "close"): respiter.close() diff --git a/gunicorn/workers/sync.py b/gunicorn/workers/sync.py index b6350e86..d68d15cb 100644 --- a/gunicorn/workers/sync.py +++ b/gunicorn/workers/sync.py @@ -177,17 +177,15 @@ class SyncWorker(base.Worker): self.alive = False respiter = self.wsgi(environ, resp.start_response) try: - try: - if isinstance(respiter, environ['wsgi.file_wrapper']): - resp.write_file(respiter) - else: - for item in respiter: - resp.write(item) - resp.close() - finally: - request_time = datetime.now() - request_start - self.log.access(resp, req, environ, request_time) + if isinstance(respiter, environ['wsgi.file_wrapper']): + resp.write_file(respiter) + else: + for item in respiter: + resp.write(item) + resp.close() finally: + request_time = datetime.now() - request_start + self.log.access(resp, req, environ, request_time) if hasattr(respiter, "close"): respiter.close() except EnvironmentError: