VOL-943: Fix for event publish loop dropping subscribers
Change-Id: I96ca0a5bf0b06ee12140966dbfb0a15290e130df
diff --git a/common/event_bus.py b/common/event_bus.py
index 8c903d9..e717c16 100644
--- a/common/event_bus.py
+++ b/common/event_bus.py
@@ -91,6 +91,7 @@
:param msg: Arbitrary python data as message
:return: None
"""
+ from copy import copy
def passes(msg, predicate):
try:
@@ -105,7 +106,8 @@
subscribers.extend(s for s in self.subscriptions.get(None, [])
if s.topic.match(topic))
- for candidate in subscribers:
+ # iterate over a shallow-copy of subscribers
+ for candidate in copy(subscribers):
predicate = candidate.predicate
if predicate is None or passes(msg, predicate):
try: