]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Clear the IOStream buffers on close even when there is no close callback.
authorBen Darnell <ben@bendarnell.com>
Sun, 4 Aug 2013 22:08:01 +0000 (18:08 -0400)
committerBen Darnell <ben@bendarnell.com>
Sun, 4 Aug 2013 22:08:01 +0000 (18:08 -0400)
Closes #828. (again)

tornado/iostream.py

index cd97f9d30d5a941a1bff9c9316876844592aba22..ecd10fb63811e7860e444ab125d10e6990969558 100644 (file)
@@ -265,13 +265,13 @@ class BaseIOStream(object):
         self._maybe_run_close_callback()
 
     def _maybe_run_close_callback(self):
-        if (self.closed() and self._close_callback and
-                self._pending_callbacks == 0):
-            # if there are pending callbacks, don't run the close callback
-            # until they're done (see _maybe_add_error_handler)
-            cb = self._close_callback
-            self._close_callback = None
-            self._run_callback(cb)
+        # If there are pending callbacks, don't run the close callback
+        # until they're done (see _maybe_add_error_handler)
+        if self.closed() and self._pending_callbacks == 0:
+            if self._close_callback is not None:
+                cb = self._close_callback
+                self._close_callback = None
+                self._run_callback(cb)
             # Delete any unfinished callbacks to break up reference cycles.
             self._read_callback = self._write_callback = None
             # Clear the buffers so they can be cleared immediately even