summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-06-18 11:28:55 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-06-18 11:28:55 +0200
commitd7f96ade2801a712dbb532ab08ec93c9558870e1 (patch)
treee0a4db274fc146c27ee0170505235b3146ecb266
parent2752c003604e907f2a6776ff794a72845d1b5949 (diff)
downloadmtdev-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.c8
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;