Skip to content

Commit 23ab029

Browse files
committed
end loop when blocking device is read
1 parent b3dd325 commit 23ab029

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

evdev/device.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,11 +359,21 @@ def active_keys(self, verbose=False):
359359

360360

361361
class VirtualInputDevice(InputDevice):
362+
def __read_loop_blocking(self):
363+
while True:
364+
event = self.read_one()
365+
if event is None:
366+
break
367+
yield event
368+
362369
def __init__(self, dev, bustype=0, vendor=0, product=0, version=0, name=None, phys=None,
363370
capabilities=None, o_flags=os.O_RDWR | os.O_NONBLOCK):
364371

365372
capabilities = capabilities or {}
366373

374+
if not o_flags & os.O_NONBLOCK:
375+
self.read_loop = self.__read_loop_blocking
376+
367377
#: Path to input device.
368378
self.fn = dev
369379

0 commit comments

Comments
 (0)