From 0ac36aeca0d46976327c2938058cc11850dc1d48 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Tue, 24 Jan 2017 07:55:52 +0900 Subject: [PATCH] Make a copy of sessions to loop over --- server/controller.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/controller.py b/server/controller.py index 0372862..803d557 100644 --- a/server/controller.py +++ b/server/controller.py @@ -329,9 +329,10 @@ class Controller(util.LoggedClass): self.cache_height = self.bp.db_height self.header_cache.clear() - for session in self.sessions: - if isinstance(session, ElectrumX): - await session.notify(self.bp.db_height, touched) + # Make a copy; self.sessions can change whilst await-ing + sessions = [s for s in self.sessions if isinstance(s, ElectrumX)] + for session in sessions: + await session.notify(self.bp.db_height, touched) def electrum_header(self, height): '''Return the binary header at the given height.'''