aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xuinput_mng11
1 files changed, 8 insertions, 3 deletions
diff --git a/uinput_mng b/uinput_mng
index 65797fb..b8d60e6 100755
--- a/uinput_mng
+++ b/uinput_mng
@@ -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()