From eb7ef4766aef1cd7fada45d97d1b610202331914 Mon Sep 17 00:00:00 2001 From: Min RK Date: Wed, 11 Jan 2017 11:22:00 +0100 Subject: [PATCH] copy handler list in IOLoop.close(all_fds=True) avoids modifying dict during iteration if close method on fd triggers something like `IOLoop.remove_handler` --- tornado/ioloop.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tornado/ioloop.py b/tornado/ioloop.py index 1b1a07cd5..74d268252 100644 --- a/tornado/ioloop.py +++ b/tornado/ioloop.py @@ -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() -- 2.47.2