diff options
-rwxr-xr-x | uinput_mng | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -221,14 +221,21 @@ class PhysDevices(dict): self._logger.info('Removing: %s', str(d)) - # erase any uploaded FF effects - for did in self._ff_effect_idmap[path].values(): - d.erase_effect(did) - del self._ff_effect_idmap[path] - self._sel.unregister(d) + + # the following might fail if the device has been unplugged + try: + # erase any uploaded FF effects + for did in self._ff_effect_idmap[path].values(): + d.erase_effect(did) + + except OSError as e: + self._logger.error('Error unloading device "%s": %s', + path, os.strerror(e.errno)) d.close() + del self._ff_effect_idmap[path] + def upload_effect(self, effect): # upload the effect to all currently tracked devices for name, d in self.items(): |