From 3aea18c7becba3f63d5fa103a9e8ce6275a6c488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Forslund?= Date: Thu, 31 Oct 2019 09:42:24 +0100 Subject: [PATCH] fix remove_all_events The threaded event emitter did not remove the wrapper mapping when remove_all_events were called causing trailing references to objects. --- mycroft/messagebus/client/threaded_event_emitter.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mycroft/messagebus/client/threaded_event_emitter.py b/mycroft/messagebus/client/threaded_event_emitter.py index 228015d4be..027d37629e 100644 --- a/mycroft/messagebus/client/threaded_event_emitter.py +++ b/mycroft/messagebus/client/threaded_event_emitter.py @@ -55,3 +55,11 @@ class ThreadedEventEmitter(EventEmitter): return super().remove_listener(event_name, w[1]) # if no wrapper exists try removing the function return super().remove_listener(event_name, func) + + def remove_all_listeners(self, event_name): + """Remove all listeners with name. + + event_name: identifier of event handler + """ + super().remove_all_listeners(event_name) + self.wrappers.pop(event_name)