diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-01-21 13:02:16 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-01-21 13:02:16 +0100 |
commit | fa465e3177d43e44d3554f3ef5588b7bba0c376c (patch) | |
tree | ab7152f53635d2e574b837f5ee2a1ab4dfc2d79c | |
parent | 2247eb7d9031f467efe82da735a96319ffa23a35 (diff) |
-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() |