Permalink
Browse files

curl_httpclient: don't call remove_handler if we never added it.

Re-order IOLoop and self._fds operations for consistency.
  • Loading branch information...
1 parent c6593a3 commit 6cf1fa1333894a0381104f2c15f8995d61d0ae20 @bdarnell bdarnell committed Dec 7, 2012
Showing with 5 additions and 4 deletions.
  1. +5 −4 tornado/curl_httpclient.py
@@ -96,17 +96,18 @@ def _handle_socket(self, event, fd, multi, data):
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."""

0 comments on commit 6cf1fa1

Please sign in to comment.