diff --git a/README.rst b/README.rst index ad2b58a..c39fdf0 100644 --- a/README.rst +++ b/README.rst @@ -135,6 +135,11 @@ version prior to the release of 1.0. ChangeLog ========= +Version 0.10.12 +--------------- + +* fixed a bug in 0.10.11 where a dict changed whilst iterating it + Version 0.10.11 --------------- 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.''' diff --git a/server/version.py b/server/version.py index 0dc2bb7..ff7b40c 100644 --- a/server/version.py +++ b/server/version.py @@ -1 +1 @@ -VERSION = "ElectrumX 0.10.11" +VERSION = "ElectrumX 0.10.12"