summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2010-07-06 17:14:10 +0100
committerJonny Lamb <jonny.lamb@collabora.co.uk>2010-07-06 17:16:54 +0100
commit36e992a776f7e9b424b244fe4f97209ad64b5ef8 (patch)
tree01541684fe4e0d0a3f9e59fb35d5d7e725dae397
parent5647aab0a726c2e5600e40ab4d15560bc67e8b42 (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.py3
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")