select() on /dev/input/eventX not level-triggered?

From: Pavel Machek
Date: Thu May 19 2011 - 19:50:59 EST


I'm debugging strange behaviour on /dev/input/eventX ... it seems that
select is not behaving level-triggered as it apparently should. I can
reproduce it when hitting windows & alt keys.

Now, I really should rewrite it into C, first, but perhaps someone has
an idea?


# Thanks to
# GPLv2
# Copyright 2011 Pavel Machek

import struct
import time
import select
import os
import random

# format of the event structure (int, int, short, short, int)
inputEventFormat = 'iihhi'
inputEventSize = 16
file = open("/dev/input/event5", "rb") # standard binary file input
while 1:
( i, o, e ) = [file], [], [], 0.5 )
if i == []:
print "timeout event"
event =
(time1, time2, type, code, value) = struct.unpack(inputEventFormat, event)
print "type ", type, " code ", code, " value ", value


(cesky, pictures)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at