Fix a race condition
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user