]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
release exc_info even when exception is thrown
authorAlexander <homm86@gmail.com>
Thu, 26 Jan 2017 21:28:03 +0000 (00:28 +0300)
committerAlexander <homm86@gmail.com>
Thu, 26 Jan 2017 21:28:03 +0000 (00:28 +0300)
remove extra references to the futures

tornado/gen.py

index b308ca7d0b55b9ba6f060293ee7a4eca45e705ce..60eecdb9d13a26a671d06e8567fd301041dcf8fb 100644 (file)
@@ -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)