From 4efc415aa1854b2bebc790a2f37d97f17bdef1af Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 25 Jan 2018 15:50:15 +1000 Subject: [PATCH] kete: disconnect from the device/manager signals on exit Otherwise we resubscribe if we repeatedly call listen in interactive mode --- tools/tuhi-kete.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/tuhi-kete.py b/tools/tuhi-kete.py index 96da0f5..706a433 100755 --- a/tools/tuhi-kete.py +++ b/tools/tuhi-kete.py @@ -270,8 +270,8 @@ class Searcher(GObject.Object): logger.error('Another client is already searching') return - self.manager.connect('notify::searching', self._on_notify_search) - self.manager.connect('pairable-device', self._on_pairable_device) + s1 = self.manager.connect('notify::searching', self._on_notify_search) + s2 = self.manager.connect('pairable-device', self._on_pairable_device) self.manager.start_search() logger.debug('Started searching') @@ -283,6 +283,8 @@ class Searcher(GObject.Object): if self.manager.searching: logger.debug('Stopping search') self.manager.stop_search() + self.manager.disconnect(s1) + self.manager.disconnect(s2) def _on_notify_search(self, manager, pspec): if not manager.searching: @@ -335,14 +337,16 @@ class Listener(GObject.Object): return logger.debug("{}: starting listening".format(self.device)) - self.device.connect('notify::listening', self._on_device_listening) - self.device.connect('notify::drawings-available', self._on_drawings_available) + s1 = self.device.connect('notify::listening', self._on_device_listening) + s2 = self.device.connect('notify::drawings-available', self._on_drawings_available) self.device.start_listening() self.manager.run() logger.debug("{}: stopping listening".format(self.device)) try: self.device.stop_listening() + self.device.disconnect(s1) + self.device.disconnect(s2) except GLib.Error as e: if (e.domain != 'g-dbus-error-quark' or e.code != Gio.IOErrorEnum.EXISTS or