From: Alexander Date: Thu, 26 Jan 2017 21:28:03 +0000 (+0300) Subject: release exc_info even when exception is thrown X-Git-Tag: v4.5.0~15^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa5c6d9fdc0dc94c5710ea23dfae77f99464cfb0;p=thirdparty%2Ftornado.git release exc_info even when exception is thrown remove extra references to the futures --- diff --git a/tornado/gen.py b/tornado/gen.py index b308ca7d0..60eecdb9d 100644 --- a/tornado/gen.py +++ b/tornado/gen.py @@ -960,6 +960,7 @@ class Runner(object): # of the coroutine. self.stack_context_deactivate = None if self.handle_yield(first_yielded): + gen = result_future = first_yielded = None self.run() def register_callback(self, key): @@ -1018,8 +1019,10 @@ class Runner(object): exc_info = sys.exc_info() if exc_info is not None: - yielded = self.gen.throw(*exc_info) - exc_info = None + try: + yielded = self.gen.throw(*exc_info) + finally: + exc_info = None else: yielded = self.gen.send(value)