]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
curl_httpclient: don't call remove_handler if we never added it.
authorBen Darnell <ben@bendarnell.com>
Fri, 7 Dec 2012 19:28:13 +0000 (14:28 -0500)
committerBen Darnell <ben@bendarnell.com>
Fri, 7 Dec 2012 19:28:13 +0000 (14:28 -0500)
Re-order IOLoop and self._fds operations for consistency.

tornado/curl_httpclient.py

index a6c0bb0de4fe49376f7fa8c40f31eaeb66078a82..52350d246625d0fe0438bb3767979344d28c57bc 100644 (file)
@@ -96,17 +96,18 @@ class CurlAsyncHTTPClient(AsyncHTTPClient):
             pycurl.POLL_INOUT: ioloop.IOLoop.READ | ioloop.IOLoop.WRITE
         }
         if event == pycurl.POLL_REMOVE:
-            self.io_loop.remove_handler(fd)
-            del self._fds[fd]
+            if fd in self._fds:
+                self.io_loop.remove_handler(fd)
+                del self._fds[fd]
         else:
             ioloop_event = event_map[event]
             if fd not in self._fds:
-                self._fds[fd] = ioloop_event
                 self.io_loop.add_handler(fd, self._handle_events,
                                          ioloop_event)
-            else:
                 self._fds[fd] = ioloop_event
+            else:
                 self.io_loop.update_handler(fd, ioloop_event)
+                self._fds[fd] = ioloop_event
 
     def _set_timeout(self, msecs):
         """Called by libcurl to schedule a timeout."""