From 7d90b274ae8f06dd3606d3fd5529f75db1c2dc6d Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sat, 7 Jan 2023 23:48:02 +0100 Subject: [PATCH] Make sure that any existing device monitor is terminated upon disconnection --- platypush/plugins/hid/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/platypush/plugins/hid/__init__.py b/platypush/plugins/hid/__init__.py index 6e33e8c3f3..7c9ac5fb67 100644 --- a/platypush/plugins/hid/__init__.py +++ b/platypush/plugins/hid/__init__.py @@ -213,7 +213,6 @@ class HidPlugin(RunnablePlugin): for path in new_device_paths: device = scanned_devices[path] get_bus().post(HidDeviceConnectedEvent(**device)) - monitor_rule = self._get_monitor_rule(device) if monitor_rule: self._register_device_monitor(device, monitor_rule) @@ -227,7 +226,10 @@ class HidPlugin(RunnablePlugin): lost_device_paths = available_device_paths.difference(scanned_device_paths) for path in lost_device_paths: - get_bus().post(HidDeviceDisconnectedEvent(**self._available_devices[path])) + device = self._available_devices.get(path) + if device: + get_bus().post(HidDeviceDisconnectedEvent(**device)) + self._unregister_device_monitor(device['path']) def _handle_device_events(self, scanned_devices: dict): """