diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2010-07-06 17:14:10 +0100 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2010-07-06 17:16:54 +0100 |
commit | 36e992a776f7e9b424b244fe4f97209ad64b5ef8 (patch) | |
tree | 01541684fe4e0d0a3f9e59fb35d5d7e725dae397 | |
parent | 5647aab0a726c2e5600e40ab4d15560bc67e8b42 (diff) |
connection_manager: ensure the list of connections isn't altered during iteration
Otherwise we can get this:
File "/usr/lib/python2.6/site-packages/butterfly/util/decorator.py", line 87, in async_function
func(*args, **kwargs)
File "/usr/libexec/telepathy-butterfly", line 67, in quit
manager.quit()
File "/usr/lib/python2.6/site-packages/butterfly/connection_manager.py", line 87, in quit
for connection in self._connections:
RuntimeError: Set changed size during iteration
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
-rw-r--r-- | butterfly/connection_manager.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/butterfly/connection_manager.py b/butterfly/connection_manager.py index e0340bf..5fff795 100644 --- a/butterfly/connection_manager.py +++ b/butterfly/connection_manager.py @@ -84,6 +84,7 @@ class ButterflyConnectionManager(telepathy.server.ConnectionManager): def quit(self): "Terminates all connections. Must be called upon quit" - for connection in self._connections: + conns = self._connections[:] + for connection in conns: connection.Disconnect() logger.info("Connection manager quitting") |