diff options
author | Henrik Rydberg <rydberg@euromail.se> | 2010-06-18 11:28:55 +0200 |
---|---|---|
committer | Henrik Rydberg <rydberg@euromail.se> | 2010-06-18 11:28:55 +0200 |
commit | d7f96ade2801a712dbb532ab08ec93c9558870e1 (patch) | |
tree | e0a4db274fc146c27ee0170505235b3146ecb266 | |
parent | 2752c003604e907f2a6776ff794a72845d1b5949 (diff) | |
download | mtdev-git-d7f96ade2801a712dbb532ab08ec93c9558870e1.tar.gz |
Use a non-blocking example in test/mtdev
The non-blocking case is more interesting for X applications.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
-rw-r--r-- | test/mtdev.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/test/mtdev.c b/test/mtdev.c index 995a4e2..60fae7b 100644 --- a/test/mtdev.c +++ b/test/mtdev.c @@ -62,7 +62,11 @@ static void loop_device(int fd) fprintf(stderr, "error: could not open device: %d\n", ret); return; } - while (mtdev_pull(&dev, fd, 1) > 0) { + /* while the device has not been inactive for five seconds */ + while (!mtdev_idle(&dev, fd, 5000)) { + /* fetch all available kernel events */ + mtdev_pull(&dev, fd, 0); + /* extract all available canonical events */ while (!mtdev_empty(&dev)) { mtdev_get(&dev, &ev); if (use_event(&ev)) @@ -79,7 +83,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Usage: mtdev <device>\n"); return -1; } - fd = open(argv[1], O_RDONLY); + fd = open(argv[1], O_RDONLY | O_NONBLOCK); if (fd < 0) { fprintf(stderr, "error: could not open device\n"); return -1; |