]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Run all IOStream callbacks inside a NullContext so that exception
authorBen Darnell <ben@bendarnell.com>
Tue, 12 Oct 2010 00:02:15 +0000 (17:02 -0700)
committerBen Darnell <ben@bendarnell.com>
Tue, 12 Oct 2010 00:02:15 +0000 (17:02 -0700)
handlers are run in the right order.

tornado/iostream.py

index 0a4fd8f75c68c7b622cef5cdd61154d21c8fd749..ef1288b0a4d82b7f4abb3c320d26d5662b8c7bc3 100644 (file)
@@ -177,7 +177,10 @@ class IOStream(object):
 
     def _run_callback(self, callback, *args, **kwargs):
         try:
-            callback(*args, **kwargs)
+            # Use a NullContext to ensure that all StackContexts are run
+            # inside our blanket exception handler rather than outside.
+            with stack_context.NullContext():
+                callback(*args, **kwargs)
         except:
             logging.error("Uncaught exception, closing connection.",
                           exc_info=True)