diff options
-rwxr-xr-x | uinput_mng | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -273,8 +273,13 @@ class PhysDevices(dict): d.write(ecodes.EV_FF, c, ev.value) def process(self, sel_key): + fo = sel_key.fileobj + if not fo.path in self: + self._logger.debug("Process request for removed device %s", str(fo)) + return + try: - for ev in sel_key.fileobj.read(): + for ev in fo.read(): self._logger.debug('phys->uinput: %s', ev) if ev.type == ecodes.EV_FF: @@ -284,8 +289,8 @@ class PhysDevices(dict): self.uinput_dev.write_event(ev) except OSError as e: self._logger.error('Error reading from device "%s": %s', - str(sel_key.fileobj), os.strerror(e.errno)) - self.remove(sel_key.fileobj.path) + str(fo), os.strerror(e.errno)) + self.remove(fo.path) parser = argparse.ArgumentParser() |