]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Add a closed flag to AsyncHTTPClient so that a scheduled perform callback
authorBen Darnell <bdarnell@beaker.local>
Mon, 19 Apr 2010 18:03:06 +0000 (11:03 -0700)
committerBen Darnell <bdarnell@beaker.local>
Mon, 19 Apr 2010 18:03:06 +0000 (11:03 -0700)
won't cause an exception after the client is closed.

tornado/httpclient.py

index 2c9155eb9e887bdc777f15b2dc06a5503fd2a3aa..c232d832ec26a170b27b2f593ff011d1cdf4dd5a 100644 (file)
@@ -122,6 +122,7 @@ class AsyncHTTPClient(object):
             instance._events = {}
             instance._added_perform_callback = False
             instance._timeout = None
+            instance._closed = False
             cls._ASYNC_CLIENTS[io_loop] = instance
             return instance
 
@@ -135,6 +136,7 @@ class AsyncHTTPClient(object):
         for curl in self._curls:
             curl.close()
         self._multi.close()
+        self._closed = True
 
     def fetch(self, request, callback, **kwargs):
         """Executes an HTTPRequest, calling callback with an HTTPResponse.
@@ -165,6 +167,9 @@ class AsyncHTTPClient(object):
     def _perform(self):
         self._added_perform_callback = False
 
+        if self._closed:
+            return
+
         while True:
             while True:
                 ret, num_handles = self._multi.perform()