]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
copy handler list in IOLoop.close(all_fds=True) 1927/head
authorMin RK <benjaminrk@gmail.com>
Wed, 11 Jan 2017 10:22:00 +0000 (11:22 +0100)
committerMin RK <benjaminrk@gmail.com>
Wed, 11 Jan 2017 10:22:00 +0000 (11:22 +0100)
avoids modifying dict during iteration if close method on fd triggers something like `IOLoop.remove_handler`

tornado/ioloop.py

index 1b1a07cd5a951ce1f4fcc1448c7a0e0c1a270127..74d2682524c49794dca8f9d60d3b88637fc1a711 100644 (file)
@@ -715,7 +715,7 @@ class PollIOLoop(IOLoop):
         self._closing = True
         self.remove_handler(self._waker.fileno())
         if all_fds:
-            for fd, handler in self._handlers.values():
+            for fd, handler in list(self._handlers.values()):
                 self.close_fd(fd)
         self._waker.close()
         self._impl.close()