Fix a race condition

This commit is contained in:
2026-01-05 12:02:27 +01:00
parent a3b92fcc72
commit de62f95f45

View File

@@ -11,9 +11,10 @@ class Observer:
self.__receivers_list[identifier].add(queue) self.__receivers_list[identifier].add(queue)
return Subscription(self, identifier, queue) return Subscription(self, identifier, queue)
def publish(self, identifier, message): def publish(self, identifier, message):
if identifier in self.__receivers_list: with self.__lock:
for queue in self.__receivers_list[identifier]: if identifier in self.__receivers_list:
queue.put(message) for queue in self.__receivers_list[identifier]:
queue.put(message)
def quit(self, identifer, queue): def quit(self, identifer, queue):
with self.__lock: with self.__lock:
self.__receivers_list[identifer].remove(queue) self.__receivers_list[identifer].remove(queue)